Layoutproblem beim Vergrößern eines Frames

Status
Nicht offen für weitere Antworten.

ak

Bekanntes Mitglied
Hallo Leute,

ich habe ein JFrame welches von der Größe her ca. ein viertel des Bildschirmes einnimmt. Auf diesem JFrame ist eine Scrollbox und auf dieser ein JPanel. Nun habe ich auf diesem JPanel mit dem GridBagLayout mehrere Textfelder Buttons und ein Jtable positioniert. Es sieht auch alles ganz gut aus. Wenn ich das JFrame zur Laufzeit maximiere sieht alles ok aus, wenn nichts in den Textfeldern drinsteht. Sobald ich jedoch etwas in die Textfelder reinschreibe, und dann das JFrame maximiere, dann vergrößern sich die Textfelder automatisch in der Horizontale. Ich habe schon probiert verschiedene Einstellungen bei setMaximumSize und setMinimumSize vorzunehmen, schaffe es aber nicht, die Textfelder dazu zu bringen, dass diese beim Maximieren des Frames sich nicht vergrößern.
Wie kann ich das machen?

Gruß
 
G

Guest

Gast
Rechts innerhalb Deines Panels ein Glue (Box.createHorizontalGlue()), welches voll horizontal
vergrößert wird, einfügen, dann ist Ruhe im Kasten.

Was für Layout hat das Panel mit den Eingabefeldern?
 

ak

Bekanntes Mitglied
Hallo, das Panel besitzt das GridBagLayout.

Deinen Tip werde ich Morgen abend mal ausprobieren, aber kannst du mir das bitte mal etwas genauer erklären?
Bin Swing-Anfänger.

Gruß
 

thE_29

Top Contributor
nimm das TableLayout, das sieht auch super aus wenn du resized!
wurde schon oft genug im forum besprochen ...
 

foobar

Top Contributor
Die Ausdehnung der Komponenten kannst du über die Paramter weightx und weighty verändern:
Code:
this.add_component(this.getContentPane(), gbl ,this.lblDestination,   	     0,  0,  1,  1,  0.0,  0.0, GridBagConstraints.BOTH);
Du mußt dort Werte zwischen 0.0 und 1.0 eingeben. Wobei 0.0 für keine und 1.0 für maximale Ausweitung steht.

Code:
import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class GridbagLayoutDemo extends JFrame
{
	private JButton btnshow;
	private JComboBox cmbOrigin, cmbDestination;
	private JLabel lblOrigin, lblDestination;
	public GridbagLayoutDemo()
	{
		this.setSize(400,300);
		this.setResizable(true);
		this.getContentPane().setLayout(null);
		
		this.btnshow           = new JButton("show");
		this.cmbOrigin        = new JComboBox(new String[]{"aaa"});
		this.cmbDestination = new JComboBox(new String[]{"bbb"});
		
		this.lblDestination = new JLabel("destination");
		this.lblOrigin = new JLabel("origin");
		
		
		GridBagLayout gbl = new GridBagLayout();
		this.getContentPane().setLayout(gbl);
		
		this.add_component(this.getContentPane(), gbl ,this.lblDestination,   	     0,  0,  1,  1,  0.0,  0.0, GridBagConstraints.BOTH);
		this.add_component(this.getContentPane(), gbl ,this.cmbDestination,       1,  0,  1,  1,  0.0,  0.0, GridBagConstraints.BOTH);
		this.add_component(this.getContentPane(), gbl ,this.btnshow,   	       		 2,  0,  1,  2,  0.0,  0.0, GridBagConstraints.BOTH);
		this.add_component(this.getContentPane(), gbl ,this.lblOrigin,   	   			 0,  1,  1,  1,  0.0,  0.0, GridBagConstraints.BOTH);
		this.add_component(this.getContentPane(), gbl ,this.cmbOrigin,   	   		 1,  1,  1,  1,  0.0,  0.0, GridBagConstraints.BOTH);
		this.setVisible(true);
	}
	private void add_component(Container cont, GridBagLayout gbl, Component c, 
								int x ,int y, int width, int height, double weightx, double weighty, int gbconst)
		{
			GridBagConstraints gbc = new GridBagConstraints();
			gbc.fill       = gbconst;
			gbc.gridx      = x;
			gbc.gridy      = y;
			gbc.gridwidth  = width;
			gbc.gridheight = height;
			gbc.weightx    = weightx;
			gbc.weighty    = weighty;
			gbl.setConstraints(c, gbc);
			cont.add(c);
		}
	
	public static void main(String[] args)
	{
		new GridbagLayoutDemo();	
	
	}
}
 

ak

Bekanntes Mitglied
Danke für die Tips, ich werde es Heute Abend gleich ausprobieren.

P.S. Ich möchte erstmal beim GridBagLayout bleiben
 

ak

Bekanntes Mitglied
Hallo,
leider hat weightx, weitghty nicht den gewünschten Erfolg gebracht. Ich habe mal den Code der Textfelder eingefügt:

Code:
 tField_V_Name.setAlignmentX((float) 0.5);
    tField_V_Name.setMaximumSize(new Dimension(6, 21));
    tField_V_Name.setPreferredSize(new Dimension(6, 21));
    tField_V_Name.setHorizontalAlignment(SwingConstants.LEFT);
    tField_Geb.setMaximumSize(new Dimension(6, 21));
    tField_Geb.setMinimumSize(new Dimension(6, 21));
    tField_Geb.setMargin(new Insets(1, 1, 1, 1));
    tField_Geb.setHorizontalAlignment(SwingConstants.LEFT);
    tField_Tel.setMaximumSize(new Dimension(6, 21));
    tField_Tel.setMinimumSize(new Dimension(6, 21));
    tField_Tel.setHorizontalAlignment(SwingConstants.LEFT);
    tField_Name.setMaximumSize(new Dimension(6, 21));
    tField_Name.setMinimumSize(new Dimension(6, 21));
    tField_Name.setHorizontalAlignment(SwingConstants.LEFT);



Code:
panel1.add(tField_V_Name,                                new GridBagConstraints(1, 1, 2, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(2, -46, 1, 47), 123, 0));
    panel1.add(tField_Name,            new GridBagConstraints(1, 2, 2, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(2, -46, 1, 47), 121, 0));
    panel1.add(tField_Tel,           new GridBagConstraints(1, 3, 2, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(2, -46, 2, 47), 121, 0));
    panel1.add(tField_Geb,                     new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0, -46, 11, 0), 121, 0));

Das Problem ist, wenn ich nichts in den Textfelder zu stehen habe, dann werden sie beim maximieren des Frames nicht vergrößert. Wenn ich im Textfeld tField_V_Name etwas drin zustehen habe und das Frame maximiere werden die Felder auch nicht vergrößert. Alle Textfelder sind untereinander angeordnet.
Wenn ich jedoch im TextFeld tField_Name etwas reinschreibe und das Frame vergrößere, dann werden die unteren drei Textfelder vergrößert.
Wie kann ich das verhindern?
 
G

Guest

Gast
Hier ein typisches Beispiel wie ich es i.d.R. mache.
Code:
panel.add(vornameLabel,     new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 2, 2), 0, 0));
panel.add(vornameField,     new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 2, 0), 0, 0));
panel.add(nachnameLabel,    new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 2), 0, 0));
panel.add(nachnameField,    new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
panel.add(Box.createGlue(), new GridBagConstraints(2, 2, 1, 1, 1.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
Mit GridBagLayout kann man fast alle Layoutbrobleme erschlagen. ;)
 
G

Guest

Gast
Ehmm, noch die Größe der Eingabefelder vergessen. :autsch:
Code:
vornameField.setPreferredSize(new Dimension(120, 20));
nachnameField.setPreferredSize(new Dimension(120, 20));
 

ak

Bekanntes Mitglied
Nunja, habe jetzt mal etwas mit dem GuiBuilder vom Jbuilder "rumgespielt" da mir die sizes von den Textfeldern merkwürdig vorkamen. Jetzt sieht alles aus wie gewünscht. Hier mal der neue code, wenn es jemanden interessiert:

Code:
 tField_V_Name.setMaximumSize(new Dimension(126, 21));
    tField_V_Name.setMinimumSize(new Dimension(126, 21));
    tField_V_Name.setPreferredSize(new Dimension(126, 21));
    tField_V_Name.setHorizontalAlignment(SwingConstants.LEFT);
    tField_Geb.setMaximumSize(new Dimension(126, 21));
    tField_Geb.setMinimumSize(new Dimension(126, 21));
    tField_Geb.setPreferredSize(new Dimension(126, 21));
    tField_Geb.setMargin(new Insets(1, 1, 1, 1));
    tField_Geb.setHorizontalAlignment(SwingConstants.LEFT);
    tField_Tel.setMaximumSize(new Dimension(126, 21));
    tField_Tel.setMinimumSize(new Dimension(126, 21));
    tField_Tel.setPreferredSize(new Dimension(126, 21));
    tField_Tel.setHorizontalAlignment(SwingConstants.LEFT);
    tField_Name.setMaximumSize(new Dimension(126, 21));
    tField_Name.setMinimumSize(new Dimension(126, 21));
    tField_Name.setPreferredSize(new Dimension(126, 21));
    tField_Name.setHorizontalAlignment(SwingConstants.LEFT);

    panel1.add(tField_V_Name,                                 new GridBagConstraints(1, 1, 2, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, -46, 1, 47), 0, 0));
    panel1.add(tField_Name,             new GridBagConstraints(1, 2, 2, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, -46, 1, 47), 0, 0));
    panel1.add(tField_Tel,            new GridBagConstraints(1, 3, 2, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(2, -46, 2, 47), 0, 0));
    panel1.add(tField_Geb,                        new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0
            ,GridBagConstraints.WEST, GridBagConstraints.VERTICAL, new Insets(0, -46, 11, 1), 0, 0));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Layoutproblem AWT, Swing, JavaFX & SWT 3
G AWT Layoutproblem AWT, Swing, JavaFX & SWT 11
Dragonfire Swing Layoutproblem AWT, Swing, JavaFX & SWT 4
S Anfänger: Layoutproblem ! AWT, Swing, JavaFX & SWT 3
J Layoutproblem: Bild im Thread AWT, Swing, JavaFX & SWT 5
P JComboBox.addItem erzeugt Layoutproblem mit JOptionPane AWT, Swing, JavaFX & SWT 2
D (GridBag)Layoutproblem - Komponentenbreite AWT, Swing, JavaFX & SWT 2
M Bestimmte GUI erstellen: Layoutproblem AWT, Swing, JavaFX & SWT 17
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Wie greife ich auf ein Element zu, welches ich beim Scenebuilder erstellt habe AWT, Swing, JavaFX & SWT 10
H AWT Dialog Größe ändern - Schwarzer Inhalt beim groß ziehen AWT, Swing, JavaFX & SWT 1
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
A JavaFX exportierte Jar ohne beim starten die Libs hinzufügen? AWT, Swing, JavaFX & SWT 2
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
I Probleme beim Drucken auf einen PDF-Drucker AWT, Swing, JavaFX & SWT 8
G Gui updated beim zweiten Aufruf nicht mehr AWT, Swing, JavaFX & SWT 15
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
D JavaFX Probleme beim nachtäglichen hinzufügen der jfx dependency AWT, Swing, JavaFX & SWT 7
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J Kann mir jemand beim MediaPlayer helfen ? AWT, Swing, JavaFX & SWT 2
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
L Swing JDialog ton beim klicken ausstellen AWT, Swing, JavaFX & SWT 1
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
H Beim JFrame erstellen ein anderes schließen AWT, Swing, JavaFX & SWT 0
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
ruutaiokwu Swing windowStateChanged macht exakt das Gegenteil beim Verändern der Fenstergrösse AWT, Swing, JavaFX & SWT 3
J Exception beim JFrame erstellen AWT, Swing, JavaFX & SWT 6
B 2D-Grafik paintcomponent Probleme beim zeichnen AWT, Swing, JavaFX & SWT 10
D JInternalFrame wechselt Position beim ersten Click AWT, Swing, JavaFX & SWT 0
steven789hjk543 Swing Verstehe etwas beim GUI nicht AWT, Swing, JavaFX & SWT 3
L JavaFX Probleme beim Installieren JavaFX11 / JavaFX12 -- Eclipse 2019-03 AWT, Swing, JavaFX & SWT 3
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
F JavaFX Probleme beim automatischen Konvertieren AWT, Swing, JavaFX & SWT 4
J Hilfe beim tablevies AWT, Swing, JavaFX & SWT 2
L JavaFX Fehler beim setzen von Farben AWT, Swing, JavaFX & SWT 16
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
L Java FX Exception beim start AWT, Swing, JavaFX & SWT 2
L JSplitPane Divider Location beim Maximieren AWT, Swing, JavaFX & SWT 6
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
J ObservableList wirft exception beim zweiten füllen. AWT, Swing, JavaFX & SWT 4
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
D Kein Icon beim JTabbedPane AWT, Swing, JavaFX & SWT 1
L JavaFX LoadException beim Laden von JavaFX Anwendung AWT, Swing, JavaFX & SWT 6
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
N Eclipse - GUI - MacBook - Buttonsichtbarkeit beim Anlegen/Erstellen AWT, Swing, JavaFX & SWT 14
S AWT Probleme beim Zeichnen AWT, Swing, JavaFX & SWT 3
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
E Swing Miserable Performance beim Ändern der Hintergrundfarbe von JLabels AWT, Swing, JavaFX & SWT 3
L Charset beim Drucken falsch AWT, Swing, JavaFX & SWT 2
MaxG. Swing Farbe von Button beim drücken ändern AWT, Swing, JavaFX & SWT 4
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
R Swing Programm läuft nur beim Debuggen korrekt ab AWT, Swing, JavaFX & SWT 4
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
K Probleme beim JPasswordField AWT, Swing, JavaFX & SWT 11
W Kodierung (CharSet) beim Schreiben ändern AWT, Swing, JavaFX & SWT 1
D Swing JComboBox (DefaultComboBoxModel) überschreibt Eintrag beim erstellen AWT, Swing, JavaFX & SWT 0
T JButton überlagern sich und werden erst beim Mausscrollen sichtbar AWT, Swing, JavaFX & SWT 2
Thallius Swing "..." beim JLabel verhindern? AWT, Swing, JavaFX & SWT 3
P Scrollbalken verschwinden beim Zoomen AWT, Swing, JavaFX & SWT 4
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
D JavaFX (WebStart) Graues Fenster beim Start AWT, Swing, JavaFX & SWT 4
K Probleme beim zeichnen mit paintComponent() AWT, Swing, JavaFX & SWT 1
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
I JavaFX Speichern der eingefügten Einträge beim Neustart des Programms AWT, Swing, JavaFX & SWT 2
J JavaFx/SceneBuilder/Felder beim verlassen prüfen AWT, Swing, JavaFX & SWT 1
D JavaFX Beim Schließen (Rotes X) Code ausführen AWT, Swing, JavaFX & SWT 1
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
C Gesucht: Hilfe beim programmieren. AWT, Swing, JavaFX & SWT 1
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
A JavaFX Hilfe beim Design eines Quiz AWT, Swing, JavaFX & SWT 2
H JavaFX Freezes beim Zeichnen mit Canvas AWT, Swing, JavaFX & SWT 3
D JavaFX build.fxbuild error beim Erstellen einer exe AWT, Swing, JavaFX & SWT 2
C Java FX Probleme beim Schließen einer Stage AWT, Swing, JavaFX & SWT 11
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
R Swing Elemente verschieben sich im GBL beim Ein/Ausblenden AWT, Swing, JavaFX & SWT 0
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
F Breite beim GridBagLayout festlegen AWT, Swing, JavaFX & SWT 2
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
R TriangleMesh verschwindet teilweise beim resizen des Frames, sowie beim rotieren? AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben