setSize()v / s setPreferredSize()和pack()

我不清楚setSize()setPreferredSize()之间的区别是什么。 如果我使用setSize()而不是setPreferredSize()会发生什么。


pack()方法究竟做了什么?

在窗口上调用pack()将根据其包含组件的preferredSize调整它的大小。 它将尽可能小,但考虑到其组件的preferredSize和布局。 如果您只是随机使用frame.setSize() ,则添加到内容窗格的组件将展开/收缩以适应可用空间,这意味着可以覆盖每个组件的首选大小。

setSize()设置组件的大小, setPreferredSize设置首选大小.Brassuremanager将尝试为您的组件安排那么多空间。 这取决于你是否使用布局管理器……

请参阅Java:组件中setPreferredSize()和setSize()方法之间的差异