【问题标题】:java swing setXXXSize() alternative?java swing setXXXSize() 替代方案?
【发布时间】:2020-07-22 19:07:45
【问题描述】:

我总是在这里看到很多线程如何使用 setXxxSize() 方法设置组件大小

Xxx=Preferred
Xxx=Maximum
Xxx=Minimum

或者只是 setSize () 通常都是坏主意,但是当我们确实需要一个固定大小的元素而不管布局中的可用空间如何时,没有人建议替代方案。 这里有什么最佳实践吗?

【问题讨论】:

    标签: java swing layout size layout-manager


    【解决方案1】:
    1. 覆盖 getPreferredSize()getPreferredSize() 到(首先检查super 方法建议的大小,如果不合适)返回所需的大小。
    2. 然后将组件放入布局(例如FlowLayout)或布局+约束(例如GridBagLayout 和适当的GridBagConstraints),这将尊重该尺寸(即不拉伸高度或宽度)。

    另见Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?

    【讨论】:

    • 所以这个想法是定义你自己的大小,而不是让布局为你决定?但是对于其他你无法决定你的组件是否会被拉伸的布局(比如边框布局 CENTER)呢?
    • "(如边框布局 CENTER)" 在里面放一个面板。将面板布局设置为流布局或(我会选择)网格包布局。将组件放在该面板中。面板将被拉伸到给定CENTER 约束的完整宽度和高度,但自定义组件将保留其首选大小。
    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 2011-12-15
    • 2013-03-10
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多