Maximieren eines JFrames->Layoutproblem

AKST

Erfahrenes 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ß
 
Versuchs mal mit setPreferredSize() und setze den GridBagConstraint beim Textfeld
c.fill = GridBagConstraints.VERTICAL; oder c.fill = GridBagConstraints.NONE;
 
Dann zeig bitte mal den relevanten Code. Normalerweise hat das mit der Ausdehnung zu tun, die bem GBL eingetragen wird.
 
Hallo, ich werde heute abend nochmal ein paar Einstellungen an weightX und weightY vornehmen, wenn das nichts gebracht haben sollte, dann werde ich mal ein wenig Code reinkopieren.

Gruß
 
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?
 
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));
 
Zurück