首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MigLayout JLabel超过约束

MigLayout JLabel超过约束
EN

Stack Overflow用户
提问于 2014-01-08 19:39:04
回答 1查看 901关注 0票数 3

我使用MigLayout的方式如下

代码语言:javascript
复制
    panel.setLayout(new MigLayout("",
            "[][600!][]",
            "[][][][][][][][][]"));
    panel.add(composerTitle);
    panel.add(composerText, "wmax 600");
    panel.add(lblCount, "push, align right, wrap");
    panel.add(costTitle);
    panel.add(costText, "wrap,wmax 600");
    panel.add(titleTitle);
    panel.add(titleText, "wrap,wmax 600");
    panel.add(publisherTitle);
    panel.add(publisherText, "wrap,wmax 600");
    panel.add(scoreinfoTitle);
    panel.add(scoreinfoText, "wrap,wmax 600");
    panel.add(languageTitle);
    panel.add(languageText, "wrap,wmax 600");
    panel.add(collectionTitle);
    panel.add(collectionText, "wrap,wmax 600");
    panel.add(numbersTitle);
    panel.add(numbers, "grow, span 2, wrap");//JTextArea that uses line wrap
    panel.add(contentTitle);
    panel.add(content, "grow, span 2, wrap");//JTextArea

有时我的标签可能会超过600!为列添加的约束。因此,我期望标签永远不会超过600,因为最大值设置为600。但是,如果标签有足够的文本,它就会这样做。因此,我不得不将约束添加到每一个"wmax 600“。没有这个约束,我的标签就会离开这个框架。

有没有办法做到这一点,所以我不需要添加"wmax 600“到每个标签,我添加。它似乎挫败了600人的目的!列的约束。

EN

回答 1

Stack Overflow用户

发布于 2014-01-09 13:45:09

MigLayout的基本性状:

  • 单元格大小!=组件大小:行/列约束只影响前者
  • 它始终尊重组件的min/pref/max,除非在ComponentConstraint中覆盖

与minSize的标签相结合,该标签的prefSize仅略小于其prefSize,这将导致组件尺寸过大(又名:>单元格宽度)。为了至少将组件约束与列约束解耦(也就是说,当后者更改时不必更改所有前者),您可以使用wmin:

代码语言:javascript
复制
JPanel panel = new JPanel();
panel.setLayout(new MigLayout("wrap 3, debug",
        "[][300!][]"));
panel.add(new JLabel("first, normal: "));
panel.add(new JLabel("and here we want something reaaly long" 
        + "and here we want something reaaly long")
          , "wmin 0"
        );
panel.add(new JLabel("10"));
panel.add(new JLabel("second: "));
panel.add(new JLabel("another"));

或者(如果应用程序中有许多这样的布局),子类JLabel和重写getMinPreferredSize返回(0,minHeight)。虽然有点脏,但是min可以说对JLabel没有太大意义:毕竟,在默认情况下,它已经可以通过显示省略号来处理它了,您可能会进一步增强子类以显示完整文本的工具提示。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21004989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档