当您通过鼠标手动调整 JFrame
大小时,如果没有足够的空间,JPanel
上的元素可以移至下一行,同时如果没有足够的空间,则可以删除新的元素行JFrame
足够大
示例:
此时有两行适合所有 JButton
如果我通过鼠标更改 JFrame
宽度,JButton
将落在下一行:
问题是您看不到所有 JButton
,JFrame 需要调整高度。
如何使JFrame
根据设置的宽度自动调整高度以适应所有元素?
最佳答案
这不是一个很好的设计。向我展示另一个像这样工作的专业应用程序吗?人们不喜欢看到帧的大小跳跃。用户通常会调整框架大小以适应桌面上的应用程序,如果他们修复宽度和高度变化,他们会感到沮丧。让用户控制大小。
如果您希望显示所有按钮,那么也许更好的解决方案是使用以下方法使框架不可调整大小:
frame.setResizable( false );
frame.pack();
frame.setVisible();
无论如何,如果您确实想这样做,那么您可能会向框架的内容 Pane 添加一个 ComponentListener
。然后在 componentResized()
方法中,您将调用 pack()。
但是,这将导致每隔几个像素生成多个事件,因此您可能还想使用:
Toolkit.getDefaultToolkit().setDynamicLayout( false );
这样 pack() 只在鼠标释放时执行一次。
关于java - 当元素移动到下一行时如何使用 FlowLayout 自动调整 JFrame 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24867154/