5

我有一个简单的 Miglayout 对话框,其中包含由 JLabels 和 JTextFields 组成的行。根据情况设置多个组件的可见性。但是,当它们被隐藏时,行高保持不变,留下一个空白区域。

我已将最小行高设置为 0px,并将其他行设置为“增长”,但这似乎没有帮助。当然,如果一行可以是 0px 高并且其内容被隐藏,那么它应该缩小不是吗?显然我错过了一些东西!

非常感谢任何帮助。

4

3 回答 3

6

您可以设置布局的隐藏模式,以防止不可见的组件影响布局。

来自http://migcalendar.com/miglayout/cheatsheet.html

设置布局的默认隐藏模式。这种隐藏模式可以被组件约束覆盖。隐藏模式指定布局管理器应如何处理不可见的组件。模式为: 0 - 默认。意味着不可见的组件将被完全处理,就好像它们是可见的一样。1 - 不可见组件的大小将设置为 0, 0。 2 - 不可见组件的大小将设置为 0, 0,并且其周围的间隙也将设置为 0。3 - 不可见的组件根本不会参与布局,例如它不会占用网格单元。

于 2012-10-09T18:14:31.050 回答
3

为什么我在网上发布查询才能找到问题的答案?似乎我忽略了以下 QA:Force MigLayout 像 GridBagLayout 一样缩小隐藏对象

于 2012-02-03T13:59:28.520 回答
1

您可能需要panel.revalidate()在组件的可见性更改后调用来布局组件。

于 2012-02-02T20:02:20.300 回答