2011-06-24 16 views
26

私はGridLayoutのを使用していますし、次のように私のコードですが:スイングでGridLayoutを使用して列のサイズを変更するにはどうすればよいですか?

int changingVar = 1; 

JPanel panel = new JPanel(new GridLayout(changingVar, 2)); 
panel.add(new JButton("BUTTON1")); 
panel.add(new JButton("BUTTON2")); 

これは次のようになります。2つの均等なサイズのカラムである

___________________________________________ 
| [  BUTTON1  ] [  BUTTON2  ] | 
___________________________________________ 

___________________________________________ 
| [   BUTTON1   ] [ BUTTON2 ] | 
___________________________________________ 

1列は、他の後、パネルスペースの多くを占めている:私はこのようにそれをしたいと思います。どのようにグリッドレイアウトでこれを行うのですか?私は2つの異なるサイズの行と列の量を変えることができる限り、別のレイアウトを使用することに反対していません。

ありがとうございました

答えて

19

この効果が必要な場合は、GridBagLayoutを使用する必要があります。

http://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

その1 = P

EDITを楽しんで:あなたは同様の効果を得るためにFlowLayoutのとGridLayoutのの混合物を使用することによって、問題を回避することができ

。しかし、このソリューションは、レイアウトの複雑さが増すにつれて、非常に退屈で面倒なものになります。

+1

私はGridBagを以前から使っていましたが、gridlayoutのadjust_column(column_num)ちょっとの機能があることを願っていました。 – Grammin

+1

@Grammin私は過去2年間Java APIの変更についていないことに注意してください。それを言って、私はあなたが向かう同じ道を下ってきました。私が知る限り、サイズは標準のGridLayoutでは一様です。したがって、列と行の要素のサイズを変更できるGridBadLayoutの追加 –

+0

私のために十分な、ありがとう! – Grammin

関連する問題