设置ContentPane的大小(在JFrame内)

时间:2010-05-09 06:01:20

标签: swing

我想设置JFrame的大小,以便contentPane是所需的大小。 JFrame.setSize()不考虑窗口装饰,因此contentPane有点太小。窗口装饰的大小是平台和主题特定的,所以尝试手动帐户是坏消息。

JFrame.getContentPane()。setSize()失败,因为它已被管理。

想法?

谢谢!

2 个答案:

答案 0 :(得分:17)

在Java 5及更高版本中,这是最简单的方法:

JFrame frame = new JFrame("Content Pane Size Example");
frame.getContentPane().setPreferredSize(new Dimension(400, 300));
frame.pack();
frame.setVisible(true);

一如既往,上述内容应在EDT中执行。

答案 1 :(得分:0)

如果你想自己做,那么在你的Frame类型中:

this.setLayour(null);
this.pack();
Insets insets = this.getInsets();
this.setBounds(0,0, insets.left + width + insets.right, insets.top + height + insets.bottom);
this.setLocationRelativeTo(null);