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
JAVA: GUI Programmieren - Welcher Layout-Mgr?
-
-
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 -
@ bla: das klingt gut.. hab gar nicht daran gedacht dass ja die labels wieder ein eigenes layout haben können so geht das also
danke!! michi -
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.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!