Java:组件中的 setP referSize() 和 setSize() 方法之间的区别
和 的主要区别是什么。有时我使用setSize(),
有时使用setP referSize(),
有时一个做我想做的事,有时另一个。setSize()
setPreferredSize()
我应该对 s 和 s 使用什么调用?JFrame
JPanel
和 的主要区别是什么。有时我使用setSize(),
有时使用setP referSize(),
有时一个做我想做的事,有时另一个。setSize()
setPreferredSize()
我应该对 s 和 s 使用什么调用?JFrame
JPanel
使用情况取决于组件的父级是否具有布局管理器。
setSize()
-- 在父布局管理器不存在时使用;setPreferredSize()
(也是相关的和) -- 在父布局管理器存在时使用。setMinimumSize
setMaximumSize
如果组件的父级使用布局管理器,则该方法可能不会执行任何操作。这通常会产生影响的位置将对顶级组件(s和s)以及滚动窗格内部的内容产生影响。如果父级中有组件而没有布局管理器,则还必须调用。setSize()
JFrame
JWindow
setSize()
通常,如果存在布局管理器,将按预期布局组件;大多数布局管理器的工作原理是获取其组件的首选(以及最小和最大)大小,然后根据布局的规则使用和定位这些组件。setPreferredSize()
setSize()
setLocation()
例如,a 尝试使其“北”区域的边界等于其北分量的首选大小---它们最终可能大于或小于该大小,具体取决于 的大小 、布局中其他分量的大小,依此类推。BorderLayout
JFrame
setSize()
或者可以在不使用布局管理器时使用。setBounds()
但是,如果您使用的是布局管理器,则可以使用诸如等方法向布局管理器提供提示。setXXXSize()
setPreferredSize()
setMinimumSize()
并确保组件的容器使用符合请求大小的布局管理器。、 和管理器使用组件的首选大小(后两个大小取决于您设置的约束),但通常不会。如果为已可见的组件指定新的大小提示,则需要在其上调用 realidate 方法,以确保其包含层次结构再次布局。然后调用重绘方法。FlowLayout
GridBagLayout
SpringLayout
BorderLayout
GridLayout