Hallo,
ich arbeite im Moment an einem SubPanel für eine GUI von mir. Nun zu meinem Problem, das Panel ist in 3 Teile unterteilt, wobei der untere und obere immer gleich sind. Nur die generellen Inhalte im mittleren unterscheiden sich je nach Eingabe. Nun möchte ich, das die Buttons im "CenterPanel", wenn genug Platz ist, die selbe Größe haben, wie die Buttons oben und unten. Wenn zu wenig Platz ist, soll das Standardverhalten greifen.
Ein Bild sagt ja bekanntlich mehr:
http://img278.imageshack.us/img278/1540/testix4.jpg
im linken bild ist genug Platz, und ich möchte, das die EDFF-Buttons jeweils genauso groß sind wie die oben und unten. im rechten ist zu wenig Platz, das ScrollPane springt an - und die Größe ist mir ab da relativ egal.
Nun zum code:
Aufgerufen wird das Panel so:
ich arbeite im Moment an einem SubPanel für eine GUI von mir. Nun zu meinem Problem, das Panel ist in 3 Teile unterteilt, wobei der untere und obere immer gleich sind. Nur die generellen Inhalte im mittleren unterscheiden sich je nach Eingabe. Nun möchte ich, das die Buttons im "CenterPanel", wenn genug Platz ist, die selbe Größe haben, wie die Buttons oben und unten. Wenn zu wenig Platz ist, soll das Standardverhalten greifen.
Ein Bild sagt ja bekanntlich mehr:
http://img278.imageshack.us/img278/1540/testix4.jpg
im linken bild ist genug Platz, und ich möchte, das die EDFF-Buttons jeweils genauso groß sind wie die oben und unten. im rechten ist zu wenig Platz, das ScrollPane springt an - und die Größe ist mir ab da relativ egal.
Nun zum code:
Code:
public class Test extends JPanel {
//private DataCountry dc;
public Test (){
//this.dc = dc;
setLayout(new BorderLayout());
//top:
JPanel top = new JPanel (new GridLayout(2,1,10,20));
JButton toContinent = new JButton ("Europe");
top.add(toContinent);
top.add(new JSeparator());
//---
JPanel center = new JPanel (new GridLayout(4,1,10,10));
for (int i = 0; i < 4; i++){ //da wo die 4 ist, ist sonst natürlich ein Datenobjektarray
JButton jb = new JButton("EDFF");
center.add(jb);
//center.add(new JButton(dc.getChild(i).getICAOCode()));
}
//center.setBorder( new EmptyBorder (0,10,10,10));
JPanel centerDummy = new JPanel ();
centerDummy.add(center);
JScrollPane spCenter = new JScrollPane (centerDummy);
spCenter.setBorder(new EmptyBorder(0,0,20,0));
JPanel bottom = new JPanel (new GridLayout(2,1,0,0));
JButton newFIR = new JButton ("neue FIR");
bottom.add(new JSeparator());
bottom.add(newFIR);
JPanel returnPanel = new JPanel (new BorderLayout());
returnPanel.add(top, BorderLayout.NORTH);
returnPanel.add(spCenter, BorderLayout.CENTER);
returnPanel.add(bottom, BorderLayout.SOUTH);
returnPanel.setBorder(new EmptyBorder (15,15,15,15));
add(returnPanel);
setBorder(BorderFactory.createTitledBorder(
BorderFactory.createEtchedBorder(EtchedBorder.LOWERED), "Navigation"));
}
}
Aufgerufen wird das Panel so:
Code:
JPanel subPanel = new PanelCountrySub();
subPanel.setPreferredSize(new Dimension (150,600));