MigLayout收缩行为

时间:2012-03-15 15:55:47

标签: java swing miglayout

使用下面定义的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设置了linewrap。 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);

1 个答案:

答案 0 :(得分:3)

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