2012-01-17 6 views
4

フォーマット化グループ(画像の左側)でコンポーネント間のサイズを小さくしたいですか?これを行う方法?グリッドレイアウトを使用する場合3つのスイングチェックボックスの間のスペースを減らすにはどうすればよいですか?

enter image description here

JPanel formattingGroup = createGroupWithName("Formatting"); 
     formattingGroup.setMinimumSize(new Dimension(250, 20)); 
     formattingGroup.setLayout(new GridLayout(5, 0)); 
     add(formattingGroup); 

     final JCheckBox showSurface = new JCheckBox("Show surface"); 
     showSurface.setSelected(true); 
     formattingGroup.add(showSurface); 

     final JCheckBox showTerrain = new JCheckBox("Show terrain"); 
     showTerrain.setSelected(true); 
     formattingGroup.add(showTerrain); 

     final JCheckBox showVehicleStatus = new JCheckBox("Show vehicle status"); 
     showVehicleStatus.setSelected(true); 
     formattingGroup.add(showVehicleStatus); 

     JPanel pnl = createGroupWithName("Depth Stretch"); 
     formattingGroup.add(pnl); 
     JSlider slider = new JSlider(0, 10); 
     pnl.add(slider); 

答えて

3

すべてのコンポーネントが同じサイズにされます。

TitledBorderとJSliderを使用してJPanelをグリッドに追加します。したがって、チェックボックスはそのパネルと同じ垂直高さになります。

パネルに別のレイアウトマネージャを使用する必要があります。たぶん、垂直BoxLayout。

2

Resizing a Componentで説明されているサイズのバリエーションを参照してください。

+0

正直な質問:[Nimbusルックアンドフィール](http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/custom.html)でのみ可能なコンポーネントのサイズ変更オプションはありませんか? '' Nimbusは現在のところ、サイズバリエーションをサポートする唯一のSunのルックアンドフィールです。 " – hamena314

+1

サイズ変更をサポートする唯一の_Sun_(現在はOracle)L&Fです。 'com.apple.laf.AquaLookAndFeel'も[example](http://stackoverflow.com/a/17392522/230513)のためにあります。 – trashgod

0

gridbaglayoutを使用すると、ウェイト、列または行に与えたり、間隔やパディング値を設定することができます。

私は12フレームのうちのどれかを含むSwingアプリケーションを作成しました。それらはすべてGridBagLayoutで作成されています。

私はそれ以前にも他のものを試しましたが、すべてに限界がありました。それがGridBagLayoutが始動する場所です。どのように動作するのか理解し始めるのが少し難しくなりますが、一度それを感じると、必要な場所にコンポーネントを配置するのが最も良い方法です。

私はあなたに、GridBagLayoutで作成されたフレームのすばらしい例を示します。

関連する問題