コンポーネントをレイアウトしようとしていて、幅を特定の方法で設定したいと考えています。私が理解していることから、miglayout は「width min:pref:max」のように幅を設定します。したがって、私の場合、次のものが必要です。
私の問題はcomp2にあります。最大幅を指定していないため、約 200px で成長が止まり、その理由がわかりません。
milayout swing demo もチェックしましたが、私の正確なケースはありません。幅は無制限ですが、最小幅が指定されていません。
パネルが拡大することを確認するために、パネルの背景を灰色に設定しましたが、問題なく拡大することがわかります。
何か明確にする必要がある場合は教えてください。喜んでより良い説明を試みます。
編集:ここにSSCCEがあります
import java.awt.Color;
import javax.swing.*;
import net.miginfocom.swing.MigLayout;
public class SSCCE {
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel(new MigLayout(
"",
"[grow, fill]",
""));
panel.setBackground(Color.LIGHT_GRAY);
JButton comp1 = new JButton("Comp1");
JButton comp2 = new JButton("Comp2");
JButton comp3 = new JButton("Comp3");
panel.add(comp1, "width 50:150:150, growx");
panel.add(comp2, "growx");
panel.add(comp3, "width 50:70:70, growx");
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
私は成長しますが、利用可能なすべてのスペースを利用したいのですが、そうではありません。パネルの設定と関係ありますか?
編集2:このコードで:
panel.add(comp1, "width 50:150:150");
panel.add(comp2, "width 10:n:n");
panel.add(comp3, "width 50:70:70, right");
私はこれを得る:
しかし、私は中間コンポーネントが利用可能なすべてのスペースを占めるようにしたい.