Dav*_*les 101 java swing jpanel jframe
好的,我阅读了Java文档,我无法弄清楚这两种方法之间的主要区别.有时我曾经使用过setSize(),有时候setPreferredSize(),有时一个人会做我想要的,有时候是另一个.
那么,两者之间的主要区别是什么?我应该使用哪一个JFrames和JPanels?
谢谢
Sbo*_*odd 114
简短的回答是:它很复杂.
稍微长一点的答案是:setSize()如果组件的父级没有布局管理器,则使用它,setPreferredSize()以及它的相关性setMinimumSize和setMaximumSize是否相关.
setSize()如果组件的父级使用布局管理器,则可能不会执行任何操作; 通常会产生影响的地方是顶级组件(JFrames和JWindows)以及内部的东西scrolled panes.setSize()如果没有布局管理器的父级内部有组件,也必须调用.
作为一般规则,setPreferredSize()如果您有布局管理员,应该做"正确的事"; 大多数布局管理器通过获取其组件的首选(以及最小和最大)大小,然后根据布局规则使用setSize()和setLocation()定位这些组件来工作.所以(作为一个例子)一个BorderLayout将努力使其"北"区域的边界等于preferred size其北成分的-它们可能最终比更大或更小,这取决于的大小jframe,其它部件的尺寸在布局中,等等.
Var*_*run 10
setSize()或者setBounds()可以在没有使用布局管理器时使用.
但是,如果您使用的是布局管理器可以提供使用提示,布局管理器setXXXSize()类似的方法setPreferredSize()和setMinimumSize()等.
并确保组件的容器使用一个尊重请求大小的布局管理器.的FlowLayout,GridBagLayout和SpringLayout管理人员使用组件的首选大小(后两者取决于您所设置的限制),但BorderLayout和GridLayout平时don't.If您指定的新大小提示为已在可见的一个组成部分,你需要在调用该方法重新验证它确保其包容层次结构再次布局.然后调用重绘方法.
setSize 将组件的大小调整为指定的大小.
setPreferredSize设置首选大小.该组件实际上可能不是这个大小,具体取决于它所在容器的大小,或者用户是否手动重新调整组件大小.
国际研究中心...
setSize设置组件的大小。
setPreferredSize设置首选尺寸。布局管理器将尝试为您的组件安排足够的空间。
这取决于您是否使用布局管理器......
| 归档时间: |
|
| 查看次数: |
107101 次 |
| 最近记录: |