1

ボタンのサイズを同じサイズに変更して、JApplet のパネルに配置したいと考えています。使ってみました

public void init() {
    // TODO start asynchronous download of heavy resources

    JButton btnWestern=new JButton("Western");
    JButton btnPop=new JButton("Pop");

    GridBagConstraints c4=new GridBagConstraints();

    JPanel jPanel1 = new JPanel();
    getContentPane().setLayout(new java.awt.GridBagLayout());
    jPanel1.setLayout(new java.awt.GridBagLayout());

    c4.gridx = 0;
    c4.gridy = 0;
    c4.insets = new Insets(36, 10, 0, 249);
    jPanel1.add(btnWestern, c4);

    c4.gridx = 0;
    c4.gridy = 1;
    c4.insets = new Insets(33, 10, 0, 249);
    jPanel1.add(btnPop, c4);

    add(jPanel1, new java.awt.GridBagConstraints());

    }

走るとこうなる

ここに画像の説明を入力

しかし、ボタンのテキストを同じまたは同じ長さに変更すると、

JButton btnWestern=new JButton("Button1");
JButton btnPop=new JButton("Button2");

目的の出力が得られます

ここに画像の説明を入力

ボタンのテキストの長さが同じではなく、ボタンのサイズが同じであることを確認するにはどうすればよいですか?

4

1 に答える 1

3

まだ読んでいない場合は、GridBagLayout チュートリアルの使用方法を一読することをお勧めします。GridBagLayout は強力ですが、使用可能なより複雑な LayoutManager の 1 つでもあります。

GridBagConstraints.fill希望する動作を得るには、プロパティを設定する必要があると思います。

あなたの場合、これは次のようになります

c4.fill = GridBagConstraints.HORIZONTAL;

編集(観察された動作の説明) 両方のボタンで同じテキストを使用すると、計算されたサイズが同じになるため、必要に応じてレンダリングされます。異なるサイズのテキストを使用すると、ボタンはデフォルトでテキストに適合するサイズでレンダリングされます。のデフォルト値GridBagConstraints.fillGridBagConstraints.NONE、LayoutManger にコンポーネントのサイズを変更しないことを示します。fill をGridBagConstraints.HORIZONTALに変更すると、コンポーネントのサイズを水平方向に変更して表示領域を埋めるように LayoutManger に指示します。

于 2013-10-24T15:21:33.830 に答える