英文:
java swing setXXXSize() alternative?
问题
我总是在这里看到很多关于使用 setXxxSize() 方法来设置组件大小的线程,其中
Xxx=Preferred
Xxx=Maximum
Xxx=Minimum
或者只是一般情况下使用 setSize (),但是没有人在我们确实需要一个元素具有固定大小的情况下提出替代方法,而不考虑布局中的可用空间。
这里有什么可以遵循的最佳实践吗?
英文:
I always see many threads here how setting an components size using setXxxSize() method where
Xxx=Preferred
Xxx=Maximum
Xxx=Minimum
Or just setSize () in general are all bad ideas but nobody suggests an alternative when we do need an element to be of an fixed size regardless of available space in the layout.
Any best practices to be followed here?
答案1
得分: 3
- 覆盖重写
JComponent
的getPreferredSize()
方法(首先检查super
方法建议的大小,如果不合适)返回所需大小。 - 然后将组件放入布局中(例如
FlowLayout
)或布局 + 约束中(例如GridBagLayout
和适当的GridBagConstraints
),这将保持该大小(即不拉伸高度或宽度)。
另请参阅 在 Java Swing 中是否应避免使用 set(Preferred|Maximum|Minimum)Size 方法?
英文:
- Override
getPreferredSize()
of theJComponent
to (first check the size suggested by thesuper
method, and if not suitable) return the size required. - Then put the component into a layout (e.g.
FlowLayout
) or layout + constraint (e.g.GridBagLayout
& appropriateGridBagConstraints
) which will honor that size (i.e. not stretch the height or width).
See also Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论