MigLayout でフォームを作成しようとしています。テキスト フィールドの前に小さな JLabel を付けて、スペースが空くにつれてテキスト フィールドが大きくなるようにしたいと考えています。次のコードでこれを正常に実行できます。
JFrame frame = new JFrame("Test");
JPanel panel = new JPanel(new MigLayout("", "fill", ""));
panel.add(new JLabel("Testing"));
panel.add(new JTextField(), "growx, pushx, wrap");
frame.setContentPane(panel);
frame.pack();
frame.setMinimumSize(new Dimension(400, 100));
frame.setPreferredSize(new Dimension(400, 100));
frame.setVisible(true);
結果は次のようになります。これは予想どおりです (JLabel は必要最小限のサイズであり、JTextField は残りの領域を占有します)。
ただし、この下に JEditorPane を配置して、ウィンドウ全体の長さにまたがると、ウィンドウを拡大すると JLabel が大きくなり、大きくなります。コードの変更は次のようになります。
...
panel.add(new JTextField(), "growx, pushx, wrap");
//New line of code here:
panel.add(new JEditorPane(), "growx, pushx, span");
frame.setContentPane(panel);
...
これにより、予期しない結果が生じます (JLabel が大きくなりました)。
"growx 0"
やなどの JLabel の MigLayout パラメータを追加して、これを修正しようとしました"shrink"
が、これはラベルのサイズに影響を与えないようです。
このような状況で JLabels が成長しないようにするにはどうすればよいですか?