Java/SwingでGUIアプリケーションを構築しようとしています。私は主に、Windows側のGUIをVB(または、より正確には、Gupta SQLWindows ...それが何であるか知っているのだろうか;-) )。
Swingでグループボックスに相当するものが見つかりません...
グループボックスを使用すると、関連するいくつかのウィジェットの周りに正方形のボックス(通常はタイトル付き)があります。 1つの例は、いくつかのラジオボタンの周りのグループボックスです(ラジオボタンの内容を説明するタイトルが付いています。たとえば、「男性」と「女性」のラジオボタンを持つ「性別」というタイトルのグループボックス)。
私は少し検索しました...私が見つけた唯一の方法は、サブペインを追加し、サブペインに境界線を設定し、「グループ」内のすべてのウィジェットをサブペインに追加することでした。それを行うよりエレガントな方法はありますか?
JPanelを作成し、ラジオボタンを追加します。 JPanelのレイアウトを適切なものに設定することを忘れないでください。
次にpanel.setBorder(BorderFactory.createTitledBorder(name));
を呼び出します
他の人はすでにJPanelに注目しており、TitledBorderを使用していますが、それで問題ありません。
ただし、Swing LayoutManagersで遊んでいると、異なるJPanelのコンポーネントが正しく位置合わせできない(各パネルに独自のLayoutManagerがある)のが気になるかもしれません。
このため、Swing GUIでは、TitledBordersを使用せず、JPanel内のコンポーネントのグループをJLabelとそれに続く水平JSeparatorで分離することをお勧めします(Webで「JGoodies」を参照)。
参照" スイングの応急処置 "
グループボックスは、単に「論理的にグループ化されたウィジェット」のセットです。これは、スイングの世界ではJPanel
です。
ウィジェットをJPanel
に追加します。
ボーダータイプを「タイトル付きボーダー」に設定し、VB6の「フレーム」の名前と同じタイトルを付けます。
出来上がり。グループボックスがあります。
ラジオボタンを表示してからのJRadioButton javadocsからの引用です。
ラジオボタンの実装-選択または選択解除できるアイテムで、ユーザーにその状態を表示します。 ButtonGroupオブジェクトと共に使用して、一度に1つのボタンのみを選択できるボタンのグループを作成します。 (ButtonGroupオブジェクトを作成し、そのaddメソッドを使用して、JRadioButtonオブジェクトをグループに含めます。)
注:ButtonGroupオブジェクトは論理的なグループであり、物理的なグループではありません。ボタンパネルを作成するには、JPanelまたは同様のコンテナーオブジェクトを作成し、それにBorderを追加して、周囲のコンポーネントから引き離します。
少なくとも、標準のスイングウィジェットではそうではありません。
VBでは、グループウィジェットがあります。これは基本的にパネル+境界線です。
Swingには、コンテナウィジェットであるJPanelがあり、必要な場合にのみボーダーオブジェクトを作成して設定します。使用していないもの(国境など)にお金を払わないため、よりエレガントな方法でそれを主張することができます