Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
import java.awt.*;
import java.awt.event.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.KeyEvent;
public class GUI extends Frame {
public GUI () {
setTitle("Bildersuche v0.1"); // Fenstertitel setzen
setSize(1024,768); // Fenstergröße einstellen
addWindowListener(new TestWindowListener()); // EventListener für das Fenster hinzufügen
// (notwendig, damit das Fenster geschlossen werden kann)
setVisible(true); // Fenster (inkl. Inhalt) sichtbar machen
setMenuBar(this.getMenuBar ());
setMainField(this.getMainField());
}
public MenuBar getMenuBar () {
MenuBar menu = new MenuBar (); // Ein Menü anlegen
Menu file = new Menu ("Datei"); // Einen Menüeintrag anlegen
MenuItem newSearch = new MenuItem ("Neue Suche"); // Den Eintrag dem Menü hinzufügen
file.add (newSearch); // Das Menü der Leiste hinzufügen
menu.add(file);
// Noch ein Menü anlegen
Menu extra = new Menu ("Extras"); // ... und noch ein Menü
Menu database = new Menu ("Datenbank einsehen"); //...das Menü dem Extramenü als Untermenü hinzufügen
extra.add(database); // Das Untermenü mit Einträgen füllen
menu.add(extra);
Menu help = new Menu ("Hilfe");
MenuItem howto = new MenuItem ("Bildersuche - Hilfe");
help.add(howto);
MenuItem about = new MenuItem ("Über");
help.add(about);
menu.add(help);
return menu;
}
public MainField getMainField () {
MainField mainframe = new MainField ();
add(new TextField("Pfad", 30)); // Texteingabefeld mit einer Textvorgabe
pack();
setVisible(true);
return mainframe;
}
class TestWindowListener extends WindowAdapter {
public void windowClosing(WindowEvent e) {
e.getWindow().dispose(); // Fenster "killen"
System.exit(0); // VM "killen"
}
}
public static void main (String args[]) {
GUI gui = new GUI ();
}
}
so jetzt mal noch etwas mehr dazu.
bei der methode getmenubar meckert der compiler nicht, und ich seh das so, dass die syntax die gleiche ist, wie beim getmainfield...
wenn ich das textfield in den konstruktor packe, macht er was er soll, aber ich will's da nicht drin haben
in Zeile 15 rufst du eine Methode auf, die es nicht gibt. Im Gegensatz zu 'setMenuBar()', welche in der Superklasse java.awt.Frame deklariert ist, gibt es 'setMainField()' nicht. Die musst du also selber schreiben.
sein , an die this.getMainField() übergeben wird. Da diese Methode aber nicht existiert, müße die Fehlermeldung so aussehen : "the method getMainField() is undefined for the Class Frame".
Der Aufruf "setMenuBar(this.getMenuBar)" bezieht sich ja auch auf FRAME , und nicht auf deine Klasse, da FRAME ja eine Methode "setMenuBar" hat! :wink:
Kann ich nur bestätigen. Als Anfänger besser mit Swing arbeiten. Ich prökel seit ein paar Monaten mit SWT 'rum, sieht toll aus, aber das herausfinden, wie Dinge funktionieren, ist _echt_ zäh.