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

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

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

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

谢谢


HUWWW
浏览 5607回答 3
3回答

撒科打诨

简单的回答是:这很复杂。稍长一点的答案是:使用setSize()如果组件的父级没有布局管理器,并且setPreferredSize()及其相关setMinimumSize和setMaximumSize如果是的话。setSize()如果组件的父级使用布局管理器,则可能不会做任何事情;这通常会产生影响的位置将位于顶层组件(JFrames和JWindows)和里面的东西scrolled panes..你也必须打电话给setSize()如果在没有布局管理器的父级中有组件。作为一般规则,setPreferredSize()如果您有一个布局管理器,那么应该做“正确的事情”;大多数布局管理器的工作方法是获取其组件的首选(以及最小和最大)大小,然后使用setSize()和setLocation()根据布局规则定位这些组件。所以(举个例子)BorderLayout将试图使其“北方”区域的边界与preferred size它的北方部分-它们可能会变大或变小,这取决于jframe、布局中其他组件的大小等等。

炎炎设计

setSize()或setBounds()当没有使用布局管理器时,可以使用。但是,如果使用的是布局管理器,则可以使用setXXXSize()方法,如setPreferredSize()和setMinimumSize()等。并确保组件的容器使用符合请求大小的布局管理器。这个FlowLayout, GridBagLayout,和SpringLayout管理器使用组件的首选大小(后两个取决于您设置的约束),但是BorderLayout和GridLayout如果您为一个已经可见的组件指定了新的大小提示,则需要调用它上的重新验证方法,以确保它的包含层次结构再次布局。然后调用重新绘制方法。

噜噜哒

setSize将组件的大小调整到指定的大小。setPreferredSize设置首选大小。根据其所在容器的大小,或者如果用户手动调整组件的大小,组件可能实际上不是这个大小。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java