web-dev-qa-db-ja.com

Java Swing?に同等の「グループボックス」がありますか?

Java/SwingでGUIアプリケーションを構築しようとしています。私は主に、Windows側のGUIをVB(または、より正確には、Gupta SQLWindows ...それが何であるか知っているのだろうか;-) )。

Swingでグループボックスに相当するものが見つかりません...

グループボックスを使用すると、関連するいくつかのウィジェットの周りに正方形のボックス(通常はタイトル付き)があります。 1つの例は、いくつかのラジオボタンの周りのグループボックスです(ラジオボタンの内容を説明するタイトルが付いています。たとえば、「男性」と「女性」のラジオボタンを持つ「性別」というタイトルのグループボックス)。

私は少し検索しました...私が見つけた唯一の方法は、サブペインを追加し、サブペインに境界線を設定し、「グループ」内のすべてのウィジェットをサブペインに追加することでした。それを行うよりエレガントな方法はありますか?

58
Thorsten

JPanelを作成し、ラジオボタンを追加します。 JPanelのレイアウトを適切なものに設定することを忘れないでください。

次にpanel.setBorder(BorderFactory.createTitledBorder(name));を呼び出します

115
David Koelle

他の人はすでにJPanelに注目しており、TitledBorderを使用していますが、それで問題ありません。

ただし、Swing LayoutManagersで遊んでいると、異なるJPanelのコンポーネントが正しく位置合わせできない(各パネルに独自のLayoutManagerがある)のが気になるかもしれません。

このため、Swing GUIでは、TitledBordersを使用せず、JPanel内のコンポーネントのグループをJLabelとそれに続く水平JSeparatorで分離することをお勧めします(Webで「JGoodies」を参照)。

参照" スイングの応急処置 "

7
jfpoilpret

グループボックスは、単に「論理的にグループ化されたウィジェット」のセットです。これは、スイングの世界ではJPanelです。

ウィジェットをJPanelに追加します。

ボーダータイプを「タイトル付きボーダー」に設定し、VB6の「フレーム」の名前と同じタイトルを付けます。

出来上がり。グループボックスがあります。

3
Nivas

ラジオボタンを表示してからのJRadioButton javadocsからの引用です。

ラジオボタンの実装-選択または選択解除できるアイテムで、ユーザーにその状態を表示します。 ButtonGroupオブジェクトと共に使用して、一度に1つのボタンのみを選択できるボタンのグループを作成します。 (ButtonGroupオブジェクトを作成し、そのaddメソッドを使用して、JRadioButtonオブジェクトをグループに含めます。)

注:ButtonGroupオブジェクトは論理的なグループであり、物理的なグループではありません。ボタンパネルを作成するには、JPanelまたは同様のコンテナーオブジェクトを作成し、それにBorderを追加して、周囲のコンポーネントから引き離します。

2
Bill

少なくとも、標準のスイングウィジェットではそうではありません。

VBでは、グループウィジェットがあります。これは基本的にパネル+境界線です。

Swingには、コンテナウィジェットであるJPanelがあり、必要な場合にのみボーダーオブジェクトを作成して設定します。使用していないもの(国境など)にお金を払わないため、よりエレガントな方法でそれを主張することができます

1
Uri

David KoelleがJavaコードを介して境界線を設定することについて述べたように、デザイナーモードでも同様の結果を達成できます。

enter image description here

1
Gaurang