每当我查找与布局相关的解决方案时,我都会遇到建议您不要使用setMinimumSize()
,setPreferredSize()
和setMaximumSize()
方法的人。
典型的论点是,应该使用正确的LayoutManager
。
我的理解是LayoutManager
计算组件的实际宽度/高度,方法是查看它们需要多少空间才能正确调整大小。所以使用3种方法对我来说看起来很合理 - 例如,当你想要一个组件只有一定的大小而让其他组件总是接受其余的时候。
那么为什么不鼓励使用setXXXSize()
?
答案 0 :(得分:4)
链接副本(Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?)上有很多好的答案。
添加原因:除了少数例外情况,如果您使用这些方法,您可能会对GUI进行微调,使其在特定的外观上看起来很好(并且使用您的系统特定设置,例如您的首选桌面字体等)。这些方法本身并不是邪恶的,但使用它们的典型原因是。一旦开始调整布局中的像素位置和大小,就会在其他平台上面临GUI破坏(或至少看起来很糟糕)的风险。
作为示例,请尝试更改应用程序的默认外观。即使只是平台上提供的选项,您无疑会对结果的呈现效果感到惊讶。
因此,在所有平台上保持GUI功能和美观(请记住,Java的主要优点之一是其跨平台性),您应该依赖布局管理器等来自动调整组件的大小,以便在特定开发环境之外正确呈现。
所有这一切,你当然可以设想这些方法合理的情况。同样,它们本身并不是邪恶的,只要确保你在使用它们时意识到并发症的可能性很大,并且总是试着想一想你的问题是否还有另外一种与外观无关的解决方案。