调整JFrame的大小以适应添加的组件

时间:2014-04-25 16:25:07

标签: java swing user-interface jframe jpanel

我正在制作一个有趣的程序,它基本上是一个计算机导航GUI,不需要详细信息:)

无论如何,到目前为止,我有一个名为“新按钮”的按钮,当点击它时,它会创建一个名为“test”的新按钮,无限量。现在,我的GUI设置如下:

Class Main扩展了JPanel(包含所有内容的主面板,大小设置为) Dimension size = new Dimension(300, 200); setPreferredSize(size);

JFrame持有主JPanel,名称如下:

panel.frame = new JFrame();
panel.frame.setResizable(false);
panel.frame.setTitle(panel.title);
panel.frame.add(panel);
panel.frame.pack();
panel.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel.frame.setLocationRelativeTo(null);
panel.frame.setVisible(true);

那么,我如何根据其中的组件设置JFrame / JPanel的大小?我试过使用panel.frame.pack();但是我大多数时候都会收到错误,而有时它不会包装错误,这只是一个直线。我希望它以正方形的形式调整大小。有任何想法吗?对不起,如果我的问题不清楚/措辞不好,我总是有问题在网上表达问题,更好的是因为我可以用我的双手! :)提前致谢!

1 个答案:

答案 0 :(得分:2)

  

Class Main扩展了JPanel(包含所有内容的主面板,尺寸设置为)Dimension size = new Dimension(300,200);了setPreferredSize(大小);

不要设置面板​​的首选大小。布局管理器将根据您添加到面板的组件确定首选大小。

  

而其他时候它没有包裹,

JPanel的默认布局管理器是FlowLayout。它不是为自动换行而设计的。也许使用不同的布局管理器。或者您可以尝试Wrap Layout扩展FlowLayout以提供动态包装。

  

我尝试过使用panel.frame.pack();但我大部分时间都会收到错误

什么错误。我在使用pack()方法时从未见过错误。

如果您需要更多帮助,请发布适当的SSCCE