セルを結合するための変更を加えた GridLayout が必要です。そこで、GridBagLayout を見つけました。このレイアウトは非常に柔軟なようです。私はこの柔軟性を必要としません。たとえば、幅と高さ全体で 20 列と 10 行を使用する必要があることを GridBagLayout に伝える方法はありますか?? GridLayout のように見えるはずですが、セルが結合されています。
どうも
セルを結合するための変更を加えた GridLayout が必要です。そこで、GridBagLayout を見つけました。このレイアウトは非常に柔軟なようです。私はこの柔軟性を必要としません。たとえば、幅と高さ全体で 20 列と 10 行を使用する必要があることを GridBagLayout に伝える方法はありますか?? GridLayout のように見えるはずですが、セルが結合されています。
どうも
私の知る限り、同じ高さと幅を複数使用できますJComponent
。ただし、セルを結合したい場所でそれらを変更する必要があります。
GridBagLayout の使用方法の例を次に示します。
protected void makebutton(String name,
GridBagLayout gridbag,
GridBagConstraints c) {
Button button = new Button(name);
gridbag.setConstraints(button, c);
add(button);
}
public void init() {
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
setFont(new Font("SansSerif", Font.PLAIN, 14));
setLayout(gridbag);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
makebutton("Button1", gridbag, c);
makebutton("Button2", gridbag, c);
makebutton("Button3", gridbag, c);
c.gridwidth = GridBagConstraints.REMAINDER; //end row
makebutton("Button4", gridbag, c);
c.weightx = 0.0; //reset to the default
makebutton("Button5", gridbag, c); //another row
.........
}
したがって、常に高さと幅を指定する必要はありません。
私のプロジェクトがはるかに簡単になるので、これが可能であることを願っています。ただし、これが答えです。
GridBagLayout には、グリッド内の行または列の数を明示的に定義するメソッドはなく、グリッド内の各セルのサイズを定義するメソッドもありません。代わりに、GridBagLayout は、画面に配置されたコンポーネントの数によって、グリッド内の行と列の数を計算します。コンテナーに 5 つのコンポーネントが水平に並んでいる場合、グリッドは 5 つの列と 1 つの行で構成されます。コンテナーに 5 つのコンポーネントが縦に並んでいる場合、グリッドは 1 列と 5 行で構成されます。
から入手しました:http://www2.sys-con.com/itsg/virtualcd/java/archives/0304/tabbone/index.html
私のプロジェクトでは、グリッド幅を使用して、Excel のようなグリッドを手動で作成し、そのグリッド構造内にオブジェクトを配置するために、1 ピクセル x 1 ピクセルの透明パネルの x と y の数で GridBagLayout の一番上の行と左の列を作成することを考えています。および gridheight を使用して、必要に応じてセルを結合します。これにより、複雑なレイアウトを簡単に作成し、すべてを正しくサイズ変更できます (木をたたきます)。