【问题标题】:Best way to collapse invisible Java Swing components折叠不可见 Java Swing 组件的最佳方法
【发布时间】:2013-09-10 16:10:08
【问题描述】:

我有一些 Java Swing 组件的 visible 属性设置为 false。当它们不可见时,我不希望它们占用布局中的任何空间。实现这一目标的最佳方法是什么?

我希望模仿 WPF 的 Visibility.Collapsed 的行为。

编辑:我正在使用 MiGLayout。正如 kiheru 在答案中描述的那样,我遇到的问题是 MiGLayout 特有的,而不是一般的 Swing 布局。

【问题讨论】:

  • 这不是使用布局管理器正确完成布局时的默认行为吗?
  • 我有一个 JLabel,其 text 属性设置为字符串。当我将其visible 属性设置为 false 时,标签仍会占用空间,但不会显示文本。我正在使用设置为 flowy 的 MiGLayout。
  • 这显然是 MigLayout 的一个奇怪之处。您需要将hidemode 设置为默认值以外的其他值。见miglayout.com/whitepaper.html
  • @kiheru,这应该是一个答案。

标签: java swing layout visibility miglayout


【解决方案1】:

MigLayout 默认情况下将不可见组件视为可见组件。您需要为其他类型的行为指定 hidemode。从documentation,可能的值是:

  1. 默认。意味着不可见的组件将被完全处理,就好像它们是可见的一样。
  2. 组件的大小(如果不可见)将设置为 0、0。
  3. 组件的大小(如果不可见)将设置为 0、0,并且其周围的间隙也将设置为 0。
  4. 不可见的组件根本不会参与布局,例如它不会占用网格单元。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 2013-04-22
    相关资源
    最近更新 更多