JComponent 的大小是什么时候计算的?在屏幕上显示之后还是之前?如果我.getSize()
之前发送消息.setVisible(true)
,它会给我正确的答案吗?谢谢
问问题
3024 次
4 回答
7
例如,我有时会在调试时检查组件的大小,以找出为什么看不到它们。在大多数情况下,尺寸将在 GUI 被渲染时实现。这可能在pack()
或setVisible(true)
已经调用顶级窗口时发生。我通常的方法调用顺序是首先调用pack()
,因为这告诉布局管理器布置他们负责的组件,并设置组件和 GUI 的大小,然后调用setLocationRelativeTo(null)
以使我的 GUI 居中,然后调用setVisible(true)
以显示它.
于 2011-08-22T02:36:49.120 回答
6
布局管理器负责确定组件的大小,因此在组件被添加到框架并且框架已经被打包()使之可见之前,您不知道它的实际大小。
如果您使用尊重组件首选大小的布局管理器,则可以使用:
component.getPreferredSize();
为什么你认为你需要知道尺寸?通常,您不必担心尺寸,让布局管理器完成其工作。
于 2011-08-22T02:29:55.483 回答
6
除了通常的pack()
>>序列,您还可以进行相关的几何预览,如图所示setVisible(true)
。getPreferredSize()
validate()
Container
于 2011-08-22T02:51:35.253 回答
6
如果我理解正确,您想知道组件大小的原因是在用户单击“更多选项”按钮后重置 JWindow 的大小,不是吗?我建议执行以下操作:当用户单击该按钮时,更新您的 UI 添加额外的组件,然后pack()
在JWindow
. 它应该调整到适当的大小。
于 2011-08-22T03:52:16.133 回答