Swing Suche nach passendem Layout

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hi, ich hab ein Problem meine Komponenten in einem JPanel so zurechtzulegen, wie ich es will. Hier zunächst ein Bild:



Das Verhalten beim Resize soll so sein, dass das TextField den ganzen Platz einnimmt, der von den Buttons links davon nicht gebraucht wird. Das funktioniert auch schon, wie man im Bild sieht.

Allerdings passt sich das Textfield nun auch der Höhe her den anderen Komponenten an, und das sieht natürlich nicht gut aus.

Das Textfield steckt im Moment im Panel (das hat ein BorderLayout) mit BorderLayout.CENTER. Alle Buttons links davon sind in einem JPanel mit FlowLayout, das als BorderLayout.WEST zum äußersten Panel geaddet ist. Ich kriege ich es mit dem BorderLayout nicht kleiner, nur mit anderen Layouts. Aber dann hab ich das Problem dass es sich nicht mehr der Länge her beim resize anpasst.

Wie kann ich das nun anstellen? Vielen Dank
 

Landei

Top Contributor
Ich sage es ja nur ungern, aber... GridBagLayout. Du kannst das Textfield auf horizontal fill stellen (Gewicht in X-Richtung dann 1.0). Mit einem GUI-Builder geht es besser.
 

hdi

Top Contributor
Das hab ich auch schon probiert! Hat nicht funktioniert, das Textfeld hatte die standard-mässige Größe von 1x15 px (kein Text enthalten). Also genauso wie wenn man es zB per FlowLayout addet.
 

Dragonfire

Bekanntes Mitglied
Also ich würde das auch mit dem GridBagLayout machen:

Java:
constraints.weightx = 1.0;
constraints.weighty = 0;
constraints.fill = GridBagConstraints.HORIZONTAL;

Wenn das Textfeld dir zu hoch ist,
dann musst du die preferredSize anpassen.

Aber so wie ich das verstanden habe,
würde ich um dem Textfeld ein emptyBorder setzen:
Java:
textfeld.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
 
Zuletzt bearbeitet:

hdi

Top Contributor
Hey, danke euch, ich hab das mit dem GBL jetzt nochmal probiert. Irgendwas hatte ich vorher wohl falsch gemacht. mit weightx = 1 und fill = HORIZONTAL klappt es.

Merci!
 

hdi

Top Contributor
Ich hab jetzt wieder ein Problem, ich denke ich muss nicht nochmal einen Thread aufmachen deswegen...
Startet bitte mal folgende Demo:

Java:
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JToggleButton;

public class GBLProblem extends JFrame {

	public static void main(String[] args) {
		new GBLProblem().setVisible(true);
	}

	public GBLProblem() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		c.insets = new Insets(2, 2, 2, 2);
		c.gridx = 0;
		c.gridy = 0;
		add(new JButton("add"), c);
		c.gridx = 1;
		c.gridy = 0;
		add(new JButton("delete"), c);
		c.gridx = 2;
		c.gridy = 0;
		c.fill = GridBagConstraints.HORIZONTAL;
		c.weightx = 0.1;
		add(Box.createHorizontalGlue(), c);
		c.fill = GridBagConstraints.NONE;
		c.weightx = 0;
		c.gridx = 3;
		c.gridy = 0;
		add(new JToggleButton("filter"), c);
		c.gridx = 4;
		c.gridy = 0;
		add(new JComboBox(), c);
		c.gridx = 5;
		c.gridy = 0;
		JTextField f = new JTextField();
		f.setPreferredSize(new Dimension(200, 20));
		add(f, c);

		pack();
		setLocationRelativeTo(null);
	}

}
Die zwei Buttons "add" und "delete" bleiben immer links, und der Rest rechts im Panel beim Fenster resize. Das ist auch genauso wie ich es möchte: Der HorizontalGlue füllt die Horizontale dazwischen beim Resize. Aber jetzt das, was mir nicht gefällt: Wenn man das Fenster kleiner macht, und der Glue immer kleiner wird, dann setzt er irgendwann die Breite des Textfeldes auf 0, damit er wieder genug Platz für sich hat. Das tut er wegen des weightx = 1 contraints, wie ich annehme.

...das sieht jetzt natürlich nicht so gut aus. Was ich möchte: Dass er bei seiner minimalen Größe bleibt, und nicht anfängt das Textfeld zusammenzudrücken. Also wenn das Fenster viel kleiner wird, soll halt einfach der komplette rechte Bereich zu dem linken näher rutschen, bis sie genau nebeneinander liegen.

Ich hab schon versucht das weightx zwischen dem Glue und dem Textfeld irgendwie zu verteilen, aber sobald ich dem Textfield einen Wert > 0 gebe, sieht das auch doof aus weil dann ein Rand rechts, sowie ein Abstand zur Combobox links daneben ensteht.

Wie kann ich das jetzt lösen?

Danke!
 

Nader

Mitglied
Hi,
es gibt hier The Cells ein Swing-GUI Builder. Dazu gehört auch ein LayoutManager namens CellsLayout. Damit könntest du evtl. alle deine Probleme lösen.;)
 

Michael...

Top Contributor
Du fügst Dein Textfeld mit folgenden Einstellungen ein:
fill = GridBagConstraints.NONE;
weightx = 0.1;

Versuchs mal mit
fill = GridBagConstraints.HORIZONTAL;
weightx = 1;
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
stroggi Swing Suche nach Kurveneditor (UI-Element) AWT, Swing, JavaFX & SWT 1
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
N Suche nach Komponente / LaF AWT, Swing, JavaFX & SWT 21
W Suche großes vollständiges Swing GUI Beispiel nach MVC Model AWT, Swing, JavaFX & SWT 5
M auf der suche nach einer komponente AWT, Swing, JavaFX & SWT 3
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
-DD Lobby/Spielerliste aktualisieren bei Suche AWT, Swing, JavaFX & SWT 1
looparda Suche Lib für Visualisierung von Graphen AWT, Swing, JavaFX & SWT 12
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
Maks16 JavaFX ominöse Mails in meinem Suche Postfach von Outlook Sharepoint AWT, Swing, JavaFX & SWT 4
S JavaFX Suche Literatur für JavaFX Einstieg AWT, Swing, JavaFX & SWT 8
P LookAndFeel Suche Buch und Beispielprojekte für gute Designs AWT, Swing, JavaFX & SWT 4
L [SUCHE] Tutorial zur grafischen Nutzeroberflächengestaltung AWT, Swing, JavaFX & SWT 6
S Swing Suche Drag & Drop Beispiele AWT, Swing, JavaFX & SWT 1
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
M Suche Javabibliothek zum Zeichnen mathematischer Funktionen AWT, Swing, JavaFX & SWT 11
I Suche in einem Text AWT, Swing, JavaFX & SWT 4
TheWhiteShadow Swing suche passenden LayoutManager AWT, Swing, JavaFX & SWT 8
hdi LookAndFeel Suche: Substance L&F AWT, Swing, JavaFX & SWT 4
A Swing Suche Listener für beliebige Änderung an GUI Items/Controls AWT, Swing, JavaFX & SWT 8
G DB-Suche in GUI AWT, Swing, JavaFX & SWT 4
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2
A Swing suche OpenSource Date(Time)Picker Komponente AWT, Swing, JavaFX & SWT 9
A LookAndFeel Suche richtige Technologie für eine bestimme Desginvorlage AWT, Swing, JavaFX & SWT 5
N LayoutManager suche LayoutManager für Tabellenstruktur AWT, Swing, JavaFX & SWT 2
A Suche: Eclipse-GUI-Layout AWT, Swing, JavaFX & SWT 5
Nicer LookAndFeel Suche noch LaFs AWT, Swing, JavaFX & SWT 7
padde479 Suche eine Komponente (->ToolBar) AWT, Swing, JavaFX & SWT 7
E Swing JTree Filter Suche mit Collapse?! AWT, Swing, JavaFX & SWT 4
B Swing Suche JFileChooser zum Speichern AWT, Swing, JavaFX & SWT 2
slawaweis Suche TagCloud Komponente für Swing AWT, Swing, JavaFX & SWT 10
hdi SWT Suche passenden LayoutManager AWT, Swing, JavaFX & SWT 5
Nicer LookAndFeel Suche LaFs AWT, Swing, JavaFX & SWT 12
V [SUCHE]GUI Programmier Tutorial[Netbeans] AWT, Swing, JavaFX & SWT 8
M Suche passende Chart Library LGPL/kommerziell AWT, Swing, JavaFX & SWT 14
E Swing Suche LayoutManager AWT, Swing, JavaFX & SWT 5
P Suche freien Date und Time Picker AWT, Swing, JavaFX & SWT 3
hdi Swing Suche passende API Klasse(n) für meine Komponente AWT, Swing, JavaFX & SWT 8
ModellbahnerTT Suche bessere Methode AWT, Swing, JavaFX & SWT 4
M Suche Java Komponente AWT, Swing, JavaFX & SWT 2
newcron Suche die hässlichsten Swing GUIs AWT, Swing, JavaFX & SWT 4
A Suche TreeTable-Komponente AWT, Swing, JavaFX & SWT 12
C Suche fertigen HTML editor AWT, Swing, JavaFX & SWT 2
V Suche "Einblendeffekt" AWT, Swing, JavaFX & SWT 6
V Suche Komponente AWT, Swing, JavaFX & SWT 2
hdi JTable -> Suche passenden Listener AWT, Swing, JavaFX & SWT 10
D Suche Framework um Grafikprogramm zu schreiben. AWT, Swing, JavaFX & SWT 36
Q Suche "Ablaufplan" für Swing-Fensterwechsel? AWT, Swing, JavaFX & SWT 2
R Ich suche einen sehr simplen. AWT, Swing, JavaFX & SWT 2
A Suche analoge Uhr in Java AWT, Swing, JavaFX & SWT 9
M Jlist Eintrag mit suche selektieren AWT, Swing, JavaFX & SWT 4
G Suche 2 Componenten: Splitpane ausblenden / Stecknadel AWT, Swing, JavaFX & SWT 2
B Suche eine GUI-Komponente AWT, Swing, JavaFX & SWT 2
G Listener Suche für F1 AWT, Swing, JavaFX & SWT 25
D Suche verticale Progressbar AWT, Swing, JavaFX & SWT 2
E Suche kostenloses Iconset für Swing (Ocean) AWT, Swing, JavaFX & SWT 4
M Suche Komponente für mehrere 100.000 Zeile Text AWT, Swing, JavaFX & SWT 3
C suche 1.3er - compatible Version von Swing-layout AWT, Swing, JavaFX & SWT 15
S Ich suche ein Darstellungselement AWT, Swing, JavaFX & SWT 2
T Suche Methode zum anzeigen eines Textteils im JPasswordfield AWT, Swing, JavaFX & SWT 2
N [Suche] JTree Widget/Library. AWT, Swing, JavaFX & SWT 2
G suche Actionlistener der "Loslassen" eines Buttons AWT, Swing, JavaFX & SWT 5
G Suche Tutorial zum Thema jdbc/SQL/Select/JTable AWT, Swing, JavaFX & SWT 9
O Suche einfache Möglichkeit zum Speichern AWT, Swing, JavaFX & SWT 21
H Suche Quelltext für einen einfachen Animationsthread AWT, Swing, JavaFX & SWT 8
EagleEye suche Tutorial(s) für JTable AWT, Swing, JavaFX & SWT 2
G Suche einen KeyEvent für die Taste "ä" AWT, Swing, JavaFX & SWT 7
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
H JavaFX Fenstergröße nach maximieren erkennen AWT, Swing, JavaFX & SWT 6
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
T Elemente auf vorheriger Stage, nach Wechsel der Stage ansprechen AWT, Swing, JavaFX & SWT 32
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
K Textarea aktuallisiert sich nicht, nach Auswahl (Itemlistener) AWT, Swing, JavaFX & SWT 3
M Nach Export als Runnable Jar wird css nicht merh gefunden AWT, Swing, JavaFX & SWT 22
P kein Scrollen nach affinertransformation bei mouse dragged AWT, Swing, JavaFX & SWT 2
M Wieso verändert sich die Framerate nach erneutem Starten des AnimationTimer? AWT, Swing, JavaFX & SWT 18
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
N JavaFX Tableview nach Löschen von Element falscher Index AWT, Swing, JavaFX & SWT 4
B JavaFX TextInputDialog: Focus auf Eingabefeldinhalt setzen und nach OK Inhalt leeren AWT, Swing, JavaFX & SWT 5
VPChief Nach abspielen von Sound reagiert das Program nichtmehr AWT, Swing, JavaFX & SWT 9
VPChief Swing Eclipse: Nach Exportieren, Button funktioniert nicht mehr AWT, Swing, JavaFX & SWT 26
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
R Swing JTextField - Schriftgröße je nach Länge und Größe ändern AWT, Swing, JavaFX & SWT 0
F AWT awt KeyEvent - Zeichen direkt nach Eingabe löschen AWT, Swing, JavaFX & SWT 2
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
K JavaFX Element in HBOX nach rechts verschieben AWT, Swing, JavaFX & SWT 2
S JavaFX Slider freezt nach Benutzung AWT, Swing, JavaFX & SWT 3
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19
Fiedlerdan Image-Pfad Probleme nach Export aus Eclipse AWT, Swing, JavaFX & SWT 31
T JavaFX Nach Zoomen wird an falscher Stelle gezeichnet AWT, Swing, JavaFX & SWT 0
S Ausgabe aktualisiert sich nur nach 2. Klick AWT, Swing, JavaFX & SWT 17
F JavaFX Zustand der CheckMenuItems behalten nach Programmneustart AWT, Swing, JavaFX & SWT 7
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
S Nach scrollen verschwindet das zuvor im JPanel gezeichnete AWT, Swing, JavaFX & SWT 2
Neumi5694 java.awt.Window nach javafx.stage.Window AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben