ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
263
263
EMPFEHLEN
-
21.05.08 15:04 #1
- Registriert seit
- May 2007
- Beiträge
- 6
Hallo liebe Foren Gemeinde !
Ich hab ein ganz dickes Problem.
Ich arbeite an einen Java-Projekt für die Schule. Es geht um die Auswertung von Daten die über eine Textdatei eingelesen und ausgewertet werden sollen etc...
Dies nur kurz zur Einführung, das Programm ist fertig und funktioniert wie erwartet. Mein Problem liegt beim Layout.
Ich arbeite mit einem GridBagLayout. Die Anordnung entspricht auch (weitesgehend) meinen Erwartungen.
Nun zum eigentlichen Problem:
Nachdem ich eine Textdatei eingelesen hab wird der Inhalt in die linke JListBox geschrieben. Wenn ich nun die Daten sortiere und die verchiedenen JRadiouttons aktiviere, bzw. die JComboBoxen fülle verändert sich die Größe der Komponenten.
Genauer gesagt, die komplette Linke Seite wird breiter (Also alle Komponenten auf der linken Seite).
Ich vermute es liegt daran das sich irgendwelche Abstände oder Größen verändern wenn die ComboBoxen gefüllt, bzw. die RadioButtons den Fokus haben.
Leider habe ich nur nix brauchbares hierzu im Web gefunden.
Der grundsätzliche Aufbau ist folgender:
Es gibt ein Hauptpanel mit GridBagLyout und 2 Spalten denen die ganzen komponenten hinzugefügt werden.
Die JRadioButtons sind auf einem eigenen Panel, ebenfalls mit GridBagLayout angeordnet.
Ich hoffe ihr könnt mir helfen.
Schonmal vielen Dank im voraus.
Hier ist der Link zum Teil des Quelltextes in dem das Layout initialisiert wird:
http://nopaste.php-quake.net/29921
Als Anhang noch die Bilder bevor und nachdem sich das Layout geändert hat.
-
Haben linke und rechte Seite die selbe Gewichtung in y Richtung?
-
22.05.08 08:19 #3
- Registriert seit
- May 2007
- Beiträge
- 6
-
22.05.08 09:46 #4
Hallo,
ich vermute, es liegt daran, dass wenn die Listen, ComboBoxen etc. gefüllt werden verändert sich ihre preferredSize, und die ist wohl auf der linken Seite etwas größer. Eigentlich setzt du ja schon die Gewichtung in den Layout Constraints auf 0.5, aber offensichtlich reicht das nicht. Ich würde die linke und die rechte Seite komplett von einander trennen, sie auf eigene Panels packen und mittels GridLayout(1, 2) platzieren. Die restlichen Komponenten auf den jeweiligen Panels wie bis jetzt mit dem GridBagLayout layouten. Der Vorteil ist, dass das GridLayout wirklich dafür sorgt, dass die Zellen gleich groß sind, unabhängig von dem Inhalt.
Grüße
Vincent
-
23.05.08 12:15 #5
- Registriert seit
- May 2007
- Beiträge
- 6
Hallo,
erstmal danke für die Antworten. Auf die einfachste lösung bin ich natürlich nicht gekommen.
Jedoch verändert sich die Größe immer noch ...
Ein Idee von mir wäre jetzt für jede einzelne Komponente die preferred Size zu setzen, aber macht das Sinn ? Wäre ja ziemlich aufwendig ... da ich ja die gesamte Größe des Fenster in Prozent angebe, abhängig von der Bildschirmauflösung ...
Hier noch mal der aktuelle Quelltext:
http://nopaste.php-quake.net/30254
Gruß Hurricane ...
-
27.05.08 12:01 #6
- Registriert seit
- May 2007
- Beiträge
- 6
Hi.
Das ganze hat sich nun endlich erledigt. Ich hab das ganze über ein Null - Layout realisiert. Funktioniert einwandfrei. Trotzdem vielen Dank an alle die geholfen haben.
Gruß Hurricane
-
Hi
Hab jetzt nicht jeden Post genau verfolgt, aber falls du zukünftig mal ein komplexeres Layout gestallten willst, bei dem die Komponenten auch variabel platziert werden können und trotzdem automatisch ihre Größe anpassen, dann empfehle ich das FormLayout.
Man muss zwar etwas mehr schreiben, aber dafür kann man Elemente direk anhand der benachbarten Elemente anordnen. Ich persönlich nutze hauptsächlich dieses Layout und für kleinere eingebetete Bereich das GridLayout.
Ich hab damals auch viel mit GridBagLayout herumexperimentiert, bin aber nur selten zu dem gewünschten Ergebnis gekommen (mag natürlich auch daran liegen dass ich etwas falsch gemacht habe)
Hier mal ein kurzes SWT-Beispiel (ich bin mir gerade nicht sicher ob dieses Layout, in dieser Form, standardmäßig in Java integriert ist - da ich SWT/JFace bevorzuge. Es gibt es aber definitiv als zusätzliches Jar irgendwo).
Ähnliche Themen
-
JInternalFrame größe verändern
Von Leroux im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 13.01.09, 08:24 -
BorderLayout Größe verändern
Von deni74 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 11.10.07, 14:42 -
BufferedImage größe verändern
Von bl4ck29 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 7Letzter Beitrag: 20.06.05, 18:48 -
Programm um Größe von Bildern zu verändern.
Von 0-Checker im Forum Sonstige Grafik-ProgrammeAntworten: 2Letzter Beitrag: 15.01.05, 23:36 -
hover größe verändern
Von sonicks im Forum CSSAntworten: 2Letzter Beitrag: 24.10.01, 19:34





Zitieren


Login





