我开始使用MiGLayout进行GUI设计,而我需要的功能之一就是根据其他组件的状态显示/隐藏某些组件。
当我注意到MiGLayout支持的组件约束之一是hidemode
时,我将自己编写代码。
这是否符合我的想法?如果是这样,假设设置了hidemode
,如何触发隐藏/取消隐藏 Action ? (浏览文档后,我能够找到如何设置hidemode
,但此后如何使用它)hidemode
设置组件的隐藏模式。如果在“隐藏”模式中指定了隐藏模式,则此隐藏模式可以被组件约束覆盖。隐藏模式指定布局管理器应如何处理不可见的组件。这些模式是:
0-默认。意味着不可见的组件将完全按照可见的方式进行处理。
1-组件的大小(如果不可见)将设置为0、0。
2-组件的大小(如果不可见)将设置为0、0,并且其周围的间隙也将设置为0。
3-不可见的组件根本不会参与布局,并且例如不会占用网格单元。
示例:“hidemode 1”
最佳答案
如组件validated所示,该模式适用于组件为example的情况。 JFrame
的initGUI()
方法调用pack()
,它调用validate()
进行初始布局。稍后,hideButton的ActionListener
调用validate()
,它重新计算容器的布局以反射(reflect)新的可见性设置。另请参见How Layout Management Works。