JAVA: GUI Programmieren - Welcher Layout-Mgr?

  • Hallo! Möchte ein JAVA-Konsolenprogramm in eine GUI-Version portieren und hab nun folgendes Problem: Ich hab fast keine Ahnung von GUIs in JAVA. In C++ war das sogar von Hand irgendwie einfacher, weil man einfach nur die Koordinaten für die Controls eingeben musste. Das mit den Layouts ist irgendwie ganz anders... Welchen Layout-Manager könnt ihr mir für das Hauptfensterchen empfehlen? Es soll folgende Elemente enthalten:

    Oben ein einzeiliges Textfeld mit 2 Buttons daneben
    Dann in der Mitte ein großes mehrzeiliges Textfeld
    Und unten wieder ein einzeiliges Textfeld mit 1 Button daneben. Es handelt sich um eine Art Chat-Proggy.

    Lg Michi

  • Zitat von michi204

    ...Ein einzeiliges Textfeld mit 2 Buttons daneben
    Dann in der Mitte ein großes mehrzeiliges Textfeld
    Und unten wieder ein einzeiliges Textfeld mit 1 Button daneben.


    Zuerst einmal: Es wird alles schnell verschachtelt wenn man mit den Managern arbeitet, man kommt aber relativ schnell drauf wie man die einzelnen probs lösen kann.

    Also ganz oben in der hierachie kommt ein BorderLayout, damit kannst du angeben wo die einzelnen JPanels sind.
    Dann brauchst du 3 Panels:
    Das Oben: ein JPanel p mit Borderlayout, dort gibst du mit add(textfield, BorderLayout.CENTER) das textfeld rein, dann fügst du ein weiteres JPanel mit nem FlowLayout für die buttons hinzu. Dieses Panel wird mit BorderLayout.RIGHT "geadded". Zum Schluss p mit BorderLayout.NORTH in das HauptPanel einfügen.

    Die große JTextArea geht ganz leicht eventurell noch in eine JScrollPane einbetten und mittels BorderLayout.CENTER ins hauptfenster einfügen.

    Das untere Panel geht im Prinzip genauso wie das Obere nur das es mit BorderLayout.SOUTH ins Hauptpanel hinzugefügt wird.

    Sollten die Componenten noch zu nahe "beisammenkleben" kannst du sie mittels Borders leicht auseinanderschieben.
    Ich hab das jetzt nicht getestet sollte aber so passen.
    Viel Glück noch ;)

  • Wenn Du auf einem Container 'setLayout(null)' aufrufst, lassen sich die Elemente dieses Containers mit 'setBounds(int x, int y, int width, int height)' frei positionieren.

    "in 1000 years, we will be living machines, or dead gods"

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!