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

最佳答案

如组件validated所示,该模式适用于组件为example的情况。 JFrameinitGUI()方法调用pack(),它调用validate()进行初始布局。稍后,hideButton的ActionListener调用validate(),它重新计算容器的布局以反射(reflect)新的可见性设置。另请参见How Layout Management Works

08-28 19:01