4

私のJavaアプリでは、フォームの各行にラベルと一連のコントロールを持つ非常に単純なフォームを作成しようとしています. 次の粗い ASCII ダイアグラムのようなものを想像してください。

   結果 1: (*) 合格 ( ) 不合格
   結果 2: ( ) 合格 (*) 不合格
エラー数: [10______]
説明: [オペレーターのオーバーロード___]

厄介なことに、JRadioButtons は残りのコントロールと整列しません。これは、周囲に大量のパディングがあり、それらを数ピクセル右に押して、行間に多くのスペースを追加するためです。私はこのようなものになります:

   結果 1: (*) 合格 ( ) 不合格

   結果 2: ( ) 合格 (*) 不合格

エラー数: [10______]
説明: [オペレーターのオーバーロード___]

ラジオボタンが他のすべてのものとうまく並ぶように、空のスペースがあまりないようにするにはどうすればよいですか? 問題がある場合、これは GTK L&F; を使用しています。Windows でプログラムを実行しようとはしていません。

4

3 に答える 3

2

2つの原因があるようです。

  1. JPanel2つのラジオボタンを含むミニには、FlowLayoutデフォルトで各コンポーネントの周囲に5ピクセルのパディングが追加されています。

  2. これを行うradioButton.setBorder(null)と、ボタンの周りに別のピクセルに相当するスペースがなくなります。ただし、フォーカスがある場合は、周囲に描かれた点線を台無しにします。

于 2009-08-14T22:18:19.637 に答える
0

GridBagLayoutを使用し、必要に応じてセルを左または右に固定します(各ラベルとチェックボックスには独自のセルがあります)。ラベルは右揃えになり、チェックボックスは左揃えになります。

GridBagLayoutsを手動でカスタマイズするのは面倒なので、NetBeans GUIビルダーを使用し、グラフィカルな「カスタマイズ」ツールを使用して調整することをお勧めします。

于 2009-08-14T22:18:48.683 に答える
0

別の解決策は、マージンを変更することです (radionbuttons の setMargin メソッド)。これでうまくいくはずです。唯一の欠点は、マージン/インセットが LAF ごとに異なることです。

于 2009-08-15T17:29:17.077 に答える