2013-10-16 48 views
1

我有一个带有JPanel的GUI,该面板增加了2个面板。所以我希望这两个面板中的一个位于帧的最高四分之一处,其中一个应该在帧的另外三个季度,并且其中有一个JTable。但与setBounds方法我不能把他们的权利,我认为是因为表。用JTable放置面板

如果有人已经有同样的问题,可以帮助我,那会很好。

+0

使用IDE GUI生成器将解决你的问题约90%就贵在建设刚刚引入的麻烦一样(如果你幸运的话)量价 –

+0

@MaciejCygan :-) – kleopatra

回答

1

未经测试,但试试这个。

JPanel p1 = new JPanel(); 
int x = getWidth(); 
int y = getHeight() * 0.25; 
int y2 = getHeight() * 0.75; 
p1.setPreferredSize(new Dimension(x, y); 
p1.add(yourFirsPanel); 

JPanel p2 = new JPanel(); 
p2.setPreferredSize(new Dimension(x, y2); 

JPanel p3 = new JPanel(new BorderLayout()); 
p3.add(p1, BorderLayout(NORTH)); 
p3.add(p2, BorderLayout(CENTER)); 
+0

工作谢谢:) – JUNGE

+1

请参阅[我是否应避免使用Java Swing中的set(Preferred | Maximum | Minimum)大小方法?](http://stackoverflow.com/q/7229226/418556)(**是。**) - OP提供程序图形用户界面(或绘图)的ASCII艺术,因为它应该以最小尺寸显示,并且(如果可调整大小)以额外的宽度/高度出现。 –

+0

@JUNGE看起来并不能解决问题是一个真正的解决方案:-)所以,不要,你的布局很可能会对最轻微的变化吹。相反,请使用合适的LayoutManager。 – kleopatra