Ergebnis 1 bis 2 von 2

Thema: Java GUI: Einfache Menüstruktur

  1. #1

    Java GUI: Einfache Menüstruktur

    Also, ich brauche einmal mehr Hilfe von Profis, abgesehen von den üblichen psychologisch ausgebildeten. <____<

    Wie der Threadtitel schon ausdrücken soll geht es um ein GUI, das ich bis nächsten Freitag mit Java programmieren soll. Außerdem sollte es, wie ebenfalls im Titel vermerkt, "einfach" sein, zumindest denke ich das. Die JVM gibt mir da allerdings nicht wirklich recht, daher der Thread.


    Eigentliches Problem: Ich will eine "ganz normale" Menüstruktur im Fenster haben, also am Anfang erscheint en Hauptmenü mit drei Buttons, wenn man einen davon drückt soll man in ein anders aussehendes Untermenü kommen. Eigentlich dachte ich nicht, dass das ein Problem wäre und habe das nach Gefühl gelöst: ein JFrame mit mehreren JPanels als Member, am Anfang wird im Konstruktor per this.setContentPane (this.mainMenu); das Hauptmenü angezeigt. Im Konstruktor des Hauptmenüs (alle Menüs sind selbst erstellte Unterklassen) trage ich dann das Fenster als ActionListener für die Buttons ein, und sobald einer davon gedrückt wird, rufe ich wieder setContentPane () auf, mit dem entsprechenden anderen Panel als Argument.
    So weit, so gut, klappt bloß nicht.
    Sobald ich auf einen Knopf klicke bleibt einfach alles stehen, der Knopf gedrückt und ich kann das Fenster nur mehr schließen. Exceptions werden dabei keine geworfen.

    Eine andere Idee war, das Standard-ContentPane zu lassen, mit this.getContentPane().add (mainMenu); gleich am Anfang alle Menüs einzufügen, und nur alle außer dem Hauptmenü mit unterMenu.setVisible (false); unsichtbar zu machen. Dann habe ich in der actionPerformed-Methode nur das Hauptmenü auf unsichtbar, und das entsprechende Untermenü auf sichtbar gestellt, das Problem war aber wieder das selbe. Das Hauptmenü unsichtbar zu machen klappte zwar, aber ein anderes Menü wollte einfach nicht erscheinen.

    An den anderen Menüs kann das Ganze auch nicht liegen, ich habe bei beiden Varianten schon ein anderes Menü statt dem Hauptmenü am Anfang erscheinen lassen, wenn ich dann ins Hauptmenü wechseln wollte lief's genau gleich ab.


    So, ich hoffe, ich habe das alles genau und einleuchtend genug beschrieben, und natürlich, dass irgendwer sich damit auskennt. <_____<''
    Also: Ist der Ansatz komplett falsch, oder liegt's nur an einem Detail? Oder sollte ich einfach bei jedem Untermenü ein eigenes Fenster machen und das dann anzeigen lassen, egal wie viel hässlicher das aussähe? o_O


    Vielen Dank im Voraus für konstruktive Ratschläge! ^^'


    Edit: Ich habe jetzt noch etwas in der Java API gestöbert, und die Klasse CardLayout gefunden, die das Problem lösen könnte, auch wenn ich eigentlich denke, dass es auch anders gehen müsste. <___< Ich versuch's jedenfalls mal und editiere das Ergebnis dann rein, für andere Vorschläge bin ich jedoch trotzdem offen/dankbar. ^^''

    Edit 2: Naja, so ganz wie's soll (= überhaupt) klappt's noch nicht. <____<'' Kommt wahrscheinlich noch, dennoch könnte sich jeder Kenner mit einer guten, einfachen Alternative bei mir beliebter machen. ^^

    Edit 3: OK, es klappt! ^^'
    Insofern entschuldige ich mich für den Selbstgesprächs-Thread, schließe ihn aber nicht, falls mir noch jemand gute Tipps für die Zukunft geben will, oder so. Dass das die beste Lösung war denke ich nämlich nach wie vor nicht...<____<''

    Geändert von drunken monkey (23.03.2007 um 17:31 Uhr)

  2. #2
    kleiner tipp am rande arbeitest du mit ner version unter 1.5 von java ? wenn nicht dann kannste dir getContentpane sparen es reicht wenn du statt
    this.getContentPane().add (mainMenu);
    einfach
    this.add(mainMenu);
    schreibst (grade im unterricht gelernt )

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •