Ich habe 2 Panels auf denen ich verschiedene Swing-Komponenten platziert habe. Für die Panels habe ich BorderLayout als LayoutManager verwendet. Diese beiden Panels wollte ich nun auf ein anderes Panel (sozusagen mein content panel) platzieren. Das ganze hatte ich zuerst mal mit GridLayout gemacht, das sah dann grob gesehen so aus:
Das hat auch wunderbar funktioniert, nur sind so beide Panels natürlich gleich hoch und das wollte ich nicht. Ich wollte dass das obere ca 2/3 des verfügbaren Platzes einnimmt und das untere eben den Rest. Also dachte ich mir kann ich das doch schön leicht umändern in dem ich einfach GridBagLayout verwende. Das sah dann so aus:
Das ergibt dann halt ein Verhältnis von 5:2 was halt aber auch das ist was ich wollte (wie ich die Zahlen wähle sollte ja egal sein, es kommt ja auf das Verhältnis an, denke ich doch...).
Das klappt aber halt leider nicht so wirklich. Das Panel nutzt jetzt nicht mehr den ganzen verfügbaren Platz im äußeren Container aus, sondern es ist jetzt viel schmaler und auch nicht so hoch wie z.B. vorher als ich nur GridLayout verwendet habe... Es sieht auch so aus, als wäre das ganze zentriert von der Breite her, obwohl ich doch mit GridBagConstraints.REMAINDER sage, dass er den ganzen verfügbaren Platz verwenden soll...
Habe ich da was falsch gemacht, oder funktioniert das irgendwie mit Panels nicht so einfach ? Wär super wenn mir da jemand helfen könnte...
Code:
....
JPanel contentPanel = new JPanel(new GridLayout(2,1));
JPanel topHalf = new JPanel(new BorderLayout());
//platziere Komponenten...
JPanel bottomHalf = new JPanel(new BorderLayout());
//platziere Komponenten
contentPanel.add(topHalf,0);
contentPanel.add(bottomHalf,1);
Das hat auch wunderbar funktioniert, nur sind so beide Panels natürlich gleich hoch und das wollte ich nicht. Ich wollte dass das obere ca 2/3 des verfügbaren Platzes einnimmt und das untere eben den Rest. Also dachte ich mir kann ich das doch schön leicht umändern in dem ich einfach GridBagLayout verwende. Das sah dann so aus:
Code:
....
JPanel contentPanel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
JPanel topHalf = new JPanel(new BorderLayout());
//platziere Komponenten...
JPanel bottomHalf = new JPanel(new BorderLayout());
//platziere Komponenten
c.gridx = 0;
c.gridy = 0;
c.gridwidth = GridBagConstraints.REMAINDER;
c.gridheight = 5;
contentPanel.add(topHalf,c);
c.gridy = 5;
c.gridheight = 2;
contentPanel.add(bottomHalf,c);
Das ergibt dann halt ein Verhältnis von 5:2 was halt aber auch das ist was ich wollte (wie ich die Zahlen wähle sollte ja egal sein, es kommt ja auf das Verhältnis an, denke ich doch...).
Das klappt aber halt leider nicht so wirklich. Das Panel nutzt jetzt nicht mehr den ganzen verfügbaren Platz im äußeren Container aus, sondern es ist jetzt viel schmaler und auch nicht so hoch wie z.B. vorher als ich nur GridLayout verwendet habe... Es sieht auch so aus, als wäre das ganze zentriert von der Breite her, obwohl ich doch mit GridBagConstraints.REMAINDER sage, dass er den ganzen verfügbaren Platz verwenden soll...
Habe ich da was falsch gemacht, oder funktioniert das irgendwie mit Panels nicht so einfach ? Wär super wenn mir da jemand helfen könnte...