当您通过鼠标手动调整JFrame
时,如果没有足够的空间,JPanel
上的元素可以继续下一行,如果JFrame
是JButton
,则可以删除新的元素行足够大
示例:
此时有两行适合所有JFrame
s
如果我通过鼠标更改JButton
宽度,JButton
将在下一行中删除:
问题是你无法看到所有JFrame
,JFrame需要调整高度。
如何使{{1}}自动调整高度以根据设置的宽度调整所有元素?
答案 0 :(得分:2)
这不是一个很好的设计。告诉我另一个这样的专业应用程序?人们不喜欢看到框架的大小跳跃。用户通常会调整框架的大小以适应桌面上的应用程序,如果他们修复了宽度和高度的变化,他们会感到沮丧。让用户控制大小。
如果您想要显示所有按钮,那么可能更好的解决方案是使用以下内容使框架不可调整大小:
frame.setResizable( false );
frame.pack();
frame.setVisible();
无论如何,如果您真的想这样做,那么您可能会在框架的内容窗格中添加ComponentListener
。然后在componentResized()
方法中调用pack()。
但是,这会导致每隔几个像素生成多个事件,因此您可能还想使用:
Toolkit.getDefaultToolkit().setDynamicLayout( false );
因此只有在释放鼠标时才能执行一次pack()。
答案 1 :(得分:0)
frame.setResizable(false);
frame.pack();
frame.setVisible(true);
frame.setSize(400,200);