2016-11-08 21 views
0

ボタンの高さを少し大きくしたり、左右の幅を同じサイズにするにはどうしたらいいですか?私は試しましたweightxweightyheightxheightyしかしそれは動作しませんでした。前もって感謝します。ここに私のコードです:Java - GridBagLayoutのサイズ変更ボタン

Container contentPane = getContentPane(); 
contentPane.setLayout(new GridBagLayout()); 
GridBagConstraints c = new GridBagConstraints(); 
c.insets = new Insets(20,20,20,20); 
c.fill = GridBagConstraints.HORIZONTAL; 
c.weightx = 1.0; 

JButton back = new JButton("Back to previous menu"); 
c.gridx = 1; 
c.gridy = 0; 
contentPane.add(back,c); 

JLabel welcome = new JLabel("Hi secretary, please select an action"); 
c.gridx = 0; 
c.gridy = 0; 
contentPane.add(welcome,c); 

ボタンの定義の多くのコードがありますが、それは単にレイアウトに自分自身を配置です。

Picture

答えて

0

あなたのボタンの推奨サイズを設定しないでください。これにより、あなたとは異なるデスクトップフォントを持つユーザーに深刻な視覚的な問題が発生します。

ボタンに独自の優先サイズを定義させる必要があります。好ましい高さを補強するための最良の方法はGridBagConstraints.ipadyである:

Insets margin = new Insets(12, 0, 12, 0); 
back.setMargin(margin); 
welcome.setMargin(margin); 

等しい幅を持つように左右の強制:

c.ipady = 24; 

別のオプションは、各ボタンに追加マージンを与えることJButton.setMarginを使用することですより困難です。 GridBagLayoutはそれを行うことができません。 weightxフィールドは、すべての子コンポーネントの優先サイズに対応するためには、ウィンドウの幅が広い必要がある場合にのみ、余分なスペースの分布を決定します。列の幅が異なる場合は、余分なスペースをweightxで配布しても、幅は同じになりません。

個人的には、両辺の幅を等しくするように強制すると、値は追加されません。左辺と右辺が正確に等しい幅であることを主張する場合は、GridBagLayoutの使用を中止する必要があります。 SpringLayoutはそれを行うことができますが、使用するのは難しいです。サードパーティの依存関係を導入したい場合は、MiG Layoutのようなものが可能です。

関連する問題