Probleme mit GridBagLayout und JScrollPane

Romsl

Erfahrenes Mitglied
Hi,

ich habe ein Problem mit dem GridBagLayout und der JScrollPane.

Und zwar habe ich auf der linken Seite des GBL Panel, Panels die in ihrer Größe und Position fix bleiben sollen.
Auf der Rechten Seite möchte ich ein Panel das eine JTable in einer JScrollPane hat.

Wenn ich jetzt aber den untenstehenden Code verwende dann breitet sich die JScrollPane über das ganze Panel und deckt die linken Panels ab. Wenn ich nun die JTable direkt auf das Panel, also ohne JScrollPane, setze dann funktionierts. Ich brächte aber die JScrollPane zwecks Table Header und Scrollfunktion.

Code:
GridBagConstraints c1 = new GridBagConstraints();
        GridBagConstraints c4 = new GridBagConstraints();

        c1.fill = GridBagConstraints.NONE;
        c1.weightx = 0.0;
        c1.weighty = 0.0;
        c1.anchor = GridBagConstraints.NORTHWEST;
        c1.ipadx = 0;
        c1.ipady = 0;
        c1.gridx = 0;
        c1.gridy = 0;
        c1.gridwidth = 1;
        c1.gridheight = 1;
        gbl.setConstraints(articleP, c1);
        overviewTopP.add(articleP);

        c1.fill = GridBagConstraints.NONE;
        c1.weightx = 0.0;
        c1.weighty = 0.0;
        c1.anchor = GridBagConstraints.NORTHWEST;
        c1.ipadx = 0;
        c1.ipady = 0;
        c1.gridx = 1;
        c1.gridy = 0;
        c1.gridwidth = 1;
        c1.gridheight = 1;
        gbl.setConstraints(articleBundleP, c1);
        overviewTopP.add(articleBundleP);

        c1.fill = GridBagConstraints.NONE;
        c1.weightx = 0.0;
        c1.weighty = 0.0;
        c1.anchor = GridBagConstraints.NORTHWEST;
        c1.ipadx = 0;
        c1.ipady = 0;
        c1.gridx = 0;
        c1.gridy = 1;
        c1.gridwidth = 2;
        c1.gridheight = 1;
        gbl.setConstraints(articleDescriptionP, c1);
        overviewTopP.add(articleDescriptionP);

        c4.fill = GridBagConstraints.BOTH;
        c4.weightx = 0.1;
        c4.weighty = 0.1;
        c4.anchor = GridBagConstraints.CENTER;
        c4.gridx = 2;
        c4.gridy = 0;
        c4.gridwidth = 1;
        c4.gridheight = 2;

        articleDescriptionsP.setBorder(residualDescriptionsBorder);

        JTable c = new JTable();
        JScrollPane b = new JScrollPane(c);
        articleDescriptionsP.add(b);
        gbl.setConstraints(articleDescriptionsP, c4);
        overviewTopP.add(articleDescriptionsP);

Danke
 
Hi,

du meinst den GridBagConstraints c4 auf 1.0? Wenn ja, dann hilfts immernoch nichts. Die JScrollPane nimmt den komplett vorhandenen Platz in anspruch.

Falls nein, kannst du mir dann bitte einen CodeSchnipsel geben.

Gruß und Danke

Romsl
 
Zuletzt bearbeitet:
Hi,

Die Panel werden dann zwar angezeigt, aber ihre Größe verändert sich mit resize des InternalFrame.

Ich möchte auf der Linken Seite drei Panel darstellen, und zwar links oben zwei mit ihrer eingestellten Größe und links unten über beide Zellen ein drittes Panel.
Diese Panel sollen ihre Größe beibehalten und sich nicht mitverändern bei einem Resize. Sie haben aber Vorrang vor der rechten Seite.

Auf der rechten Seite möchte ich eine JTable in einer JScrollPane (zwecks TableHeader) anzeigen. Dessen Größe soll sich mit einem Resize verändern.

Das Ganze soll aber nur in Horizontaler Weise funktionieren. In Vertikaler muss alles fix bleiben.

Gibts da evtl ein Beispiel. Vielen Dank für jede Hilfe.

Gruß

Romsl
 
Hab es hingekriegt. Zufall...

Einfach bei den überdeckten Panel die setMinimumSize setzen.

Trotzdem danke an alle für die Bemühungen.
 
Zurück