【问题标题】:MigLayout wrap two linesMigLayout 换行两行
【发布时间】:2017-03-20 02:07:26
【问题描述】:

我刚开始使用 MigLayout。

我已经阅读了一些文档,包括 MigLayout 的快速入门指南,以及搜索了一些 SO 问题,但我没有找到答案。我确信这很明显,但就像我说的,这是我第一次使用这个布局管理器。

我正在尝试使 MigLayout 中的某一行比其他行高一倍。

我的代码开始是:

public GameWindow() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new MigLayout("fill"));
    add(new PanelHud(), "grow, span 2, wrap");
    add(new PanelWorldView(), "grow");
    add(new PanelDetailView(), "grow, wrap");
    add(new PanelMenu(), "grow, span 2");
    pack();
    setVisible(true);
}

产生:

这是一个好的开始,但我想要的是中间行的高度是顶行和底行的两倍。起初我以为我可以让中间元素跨越两行,但这不起作用:

public GameWindow() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new MigLayout("fill"));
    add(new PanelHud(), "grow, span 2, wrap");
    add(new PanelWorldView(), "grow, span 1 2");
    add(new PanelDetailView(), "grow, span 1 2, wrap");
    add(new PanelMenu(), "grow, span 2");
    pack();
    setVisible(true);
}

看起来中间一排确实是正确的尺寸,但底部一排移位了。我该如何解决这个问题?

【问题讨论】:

    标签: java layout layout-manager miglayout


    【解决方案1】:

    3 种可能的解决方案(我可能有点过火了)。

    使用自动换行,以便 miglayout 自己检测到满行:

    setLayout(new MigLayout("fill, wrap 2"));
    add(new PanelHud(), "grow, span 2");
    add(new PanelWorldView(), "grow, span 1 2");
    add(new PanelDetailView(), "grow, span 1 2");
    add(new PanelMenu(), "grow, span 2");
    

    基于单元格布局:

    setLayout(new MigLayout("fill", "[][]", "[][][][]"));
    add(new PanelHud(), "grow, cell 0 0 2 1");
    add(new PanelWorldView(), "grow, cell 0 1 1 2");
    add(new PanelDetailView(), "grow, cell 1 1 1 2");
    add(new PanelMenu(), "grow, cell 0 3 2 1");
    

    使用增长权重(尽管这似乎不能保持小窗口尺寸的 2:1 比例):

    setLayout(new MigLayout("fill", "[][]", "[grow 100][grow 200][grow 100]"));
    add(new PanelHud(), "grow, span 2, wrap");
    add(new PanelWorldView(), "grow");
    add(new PanelDetailView(), "grow, wrap");
    add(new PanelMenu(), "grow, span 2");
    

    【讨论】:

      猜你喜欢
      • 2012-10-27
      • 2012-04-01
      • 2011-08-26
      • 2013-09-13
      • 2023-04-02
      • 2013-01-12
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多