4

以下に定義されている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);
4

1 に答える 1

3

問題が解決しました。JTextAreaとLineWrapの問題を特定した後、それはMigLayoutとJTextArea Line wrapの症状であり、いくつかの場所で文書化されていると判断しました。root.add(t、 "growx")をroot.add(t、 "growx、wmin 10")に変更して解決しました

于 2012-03-18T21:48:06.377 に答える