Java:组件中的setPreferredSize()和setSize()方法之间的区别

大卫·罗伯斯(David Robles):

好的,我阅读了Java文档,只是无法弄清楚这两种方法之间的主要区别是什么。有时我用setSize(),有时是setPreferredSize(),有时一个人做我想要的,有时是另一个。

那么,两者的主要区别是什么?我应该使用哪一个JFramesJPanels

谢谢

娱乐:

简短的答案是:很复杂。

稍长一点的答案是:setSize()如果组件的父级没有布局管理器,setPreferredSize()及其相关项setMinimumSizesetMaximumSize如果有),则使用。

setSize()如果组件的父级使用布局管理器,则可能什么都不做;通常会对其产生影响的位置将位于顶层组件(JFramesJWindows)及其内部的东西上scrolled panessetSize()如果您的组件内部没有布局管理器,则还必须调用

通常,setPreferredSize()如果您有布局管理器,则应该做“正确的事”。大多数布局管理器的工作方式是获取其组件的首选(以及最小和最大)大小,然后根据布局规则使用setSize()setLocation()放置这些组件。因此(作为示例),a BorderLayout将尝试使其“北部”区域的边界等于preferred size其北部部分的边界-它们最终可能大于或小于该范围,具体取决于jframe的大小,其他部分的大小在布局中,依此类推。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章