Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 调整JFrame的大小以适应添加的组件_Java_Swing_User Interface_Jframe_Jpanel - Fatal编程技术网

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

Java 调整JFrame的大小以适应添加的组件,java,swing,user-interface,jframe,jpanel,Java,Swing,User Interface,Jframe,Jpanel,我正在做一个有趣的程序,它基本上是一个计算机导航GUI,不需要细节:) 无论如何,到目前为止,我有一个名为“new button”的按钮,当点击它时,它会创建一个名为“test”的新按钮,数量是无限的。现在,我的GUI设置如下: 类Main扩展了JPanel(容纳其中所有内容的主面板,大小设置为) 尺寸尺寸=新尺寸(300200) setPreferredSize(大小) JFrame持有主JPanel,称为like: panel.frame = new JFrame(); panel.fram

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

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

类Main扩展了JPanel(容纳其中所有内容的主面板,大小设置为)
尺寸尺寸=新尺寸(300200)
setPreferredSize(大小)

JFrame持有主JPanel,称为like:

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();但大多数时候我都会出错,而其他时候它没有包装,只是一条直线。我希望它以正方形的形式调整大小。有什么想法吗?对不起,如果我的问题不清楚/措词不当,我总是在网上表达问题时遇到问题,最好亲自提出,因为我可以用我的手!:)提前谢谢

类Main扩展了JPanel(保存其中所有内容的主面板,大小设置为)Dimension size=new Dimension(300200);设置首选大小(大小)

不要设置面板的首选尺寸。布局管理器将根据添加到配电盘的构件确定首选尺寸

而其他时候它没有包装

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

我尝试使用panel.frame.pack();但大多数时候我都会出错

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

如果您需要更多帮助,请发布一个适当的帖子