我想设置JFrame的大小,以便contentPane是所需的大小。 JFrame.setSize()不考虑窗口装饰,因此contentPane有点太小。窗口装饰的大小是平台和主题特定的,所以尝试手动帐户是坏消息。
JFrame.getContentPane()。setSize()失败,因为它已被管理。
想法?
谢谢!
答案 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);