【问题标题】:MigLayout Shrink BehaviorMigLayout 收缩行为
【发布时间】:2012-04-01 04:17:55
【问题描述】:

使用下面定义的 JPanel(嵌入在 JSplitPane 中的 JTabPanel 中):

如果我最大化,面板会正确重绘到新尺寸 如果我最小化面板不会重绘到以前的尺寸 如果我拖动角以增加大小,则面板将重新绘制为正确的尺寸 如果我拖动一个角以减小尺寸,则面板不会重绘为预期尺寸

container.setLayout(new MigLayout("debug,fillx,wrap 5",
    "[75:75:75][fill][75:75:75][fill][140:140:140,align left]"));
container.add(labelSrcTitle, "span 4");
container.add(buttonAddRef, "");
container.add(srcTitle, "span");
container.add(srcListing, "span,grow");
container.add(sepRef,"span,growx");
container.add(refTitle,"span");
container.add(refListing,"span 4,grow");
container.add(buttonEdit,"split 2");
container.add(buttonDelete,"");
container.add(name,"span 4,growx");
container.add(buttonSEdit,"split 3");
container.add(buttonSDelete);
container.add(buttonSAdd,"");
container.add(lType,"");
container.add(lClaim,"grow");
container.add(lQual,"");
container.add(lNotes,"grow");
container.add(buttonCEdit, "split 3");
container.add(buttonCDelete);
container.add(buttonCAdd, "");

我希望(并期望)如果我先最大化然后最小化,屏幕将重新绘制为其原始配置。我错过了什么?如果重要的话,所有 JTextArea 字段都是换行。

已编辑:

这是一个更简单的示例 - 问题似乎与设置了换行的 JTextArea 有关。 JFrame 中的以下代码重现了该问题:

    JPanel root = new JPanel(new MigLayout("fill,debug"));
    JTextArea t = new JTextArea();

    t.setLineWrap(true);

    root.add(t,"growx");
    setContentPane(root);
    setLocationRelativeTo(null);
    setSize(200, 200);

【问题讨论】:

  • 我猜“姓名”组件(如“Michaels,Edward”)出于某种原因正在推出所有内容。当其他“span 4”组件没有时,看看它是如何填充它的单元格的?试着把它去掉,看看它有什么不同。根据您拥有的版本,根据我的经验,推送/增长的行为有点奇怪。我的理解是,行规范中的“填充”等同于单元格规范中的“推送”。也许是这样的:stackoverflow.com/questions/2475787/…
  • 问题已解决。在确定 JTextArea 和 Line Wrap 的问题后,我确定这是 MigLayout 和 JTextArea 在多个地方记录的症状;并通过将 root.add(t,"growx") 更改为 root.add(t,"growx,wmin 10") 来解决它

标签: java swing miglayout


【解决方案1】:

问题解决了。在确定了 JTextArea 和 Line Wrap 的问题后,我确定这是 MigLayout 和 JTextArea Line wrap 在多个地方记录的症状;并通过将 root.add(t,"growx") 更改为 root.add(t,"growx,wmin 10") 来解决它

【讨论】:

  • 在我的例子中,它是一个带有 html 文本的JLabel,以启用标签内的自动换行。它无法计算出合适的长度,总是占据整个宽度。添加具有固定(w 200!)/适当首选大小(w :200:)的组件解决了这个问题。
猜你喜欢
  • 2013-07-16
  • 2020-08-13
  • 2013-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 2011-09-26
相关资源
最近更新 更多