我有一个简单的 Miglayout 对话框,其中包含由 JLabels 和 JTextFields 组成的行。根据情况设置多个组件的可见性。但是,当它们被隐藏时,行高保持不变,留下一个空白区域。
我已将最小行高设置为 0px,并将其他行设置为“增长”,但这似乎没有帮助。当然,如果一行可以是 0px 高并且其内容被隐藏,那么它应该缩小不是吗?显然我错过了一些东西!
非常感谢任何帮助。
我有一个简单的 Miglayout 对话框,其中包含由 JLabels 和 JTextFields 组成的行。根据情况设置多个组件的可见性。但是,当它们被隐藏时,行高保持不变,留下一个空白区域。
我已将最小行高设置为 0px,并将其他行设置为“增长”,但这似乎没有帮助。当然,如果一行可以是 0px 高并且其内容被隐藏,那么它应该缩小不是吗?显然我错过了一些东西!
非常感谢任何帮助。
您可以设置布局的隐藏模式,以防止不可见的组件影响布局。
来自http://migcalendar.com/miglayout/cheatsheet.html:
设置布局的默认隐藏模式。这种隐藏模式可以被组件约束覆盖。隐藏模式指定布局管理器应如何处理不可见的组件。模式为: 0 - 默认。意味着不可见的组件将被完全处理,就好像它们是可见的一样。1 - 不可见组件的大小将设置为 0, 0。 2 - 不可见组件的大小将设置为 0, 0,并且其周围的间隙也将设置为 0。3 - 不可见的组件根本不会参与布局,例如它不会占用网格单元。
为什么我在网上发布查询后才能找到问题的答案?似乎我忽略了以下 QA:Force MigLayout 像 GridBagLayout 一样缩小隐藏对象
您可能需要panel.revalidate()
在组件的可见性更改后调用来布局组件。