ラジオボタングループのタイトルと枠線の表示
「ラジオボタン JRadioButton」でラジオボタン (JRadioButton) の基本的な使用方法を説明しました。
そこで作成したサンプルプログラムは次のようなものでした。
ここでは、これを少しだけ発展させて、グループを表す枠線を表示してみましょう。
できあがりは、次のようになります。
意味的にグループ化されているラジオボタンが1組だけなら、枠線はあまり意味をなさないと思いますが、 複数のグループに区分されているなら、見た目にも枠線で区別しておいた方がわかりやすいでしょう。
ちなみに、ここではラジオボタンでの使用例として紹介していますが、 枠線やタイトルは特にラジオボタンでしか使えないものではありません。ボタンやテキストボックスなど、 一般的に UI をグループ化するのに使えます。
タイトルと枠線の表示
タイトルや枠線はパネル JPanel の枠線として作成します。
そして、そのパネルにグループ化しているラジオボタンなどの、ユーザーインターフェイス要素を追加します。
上の例を実現するには、次のようにします。(「ラジオボタン JRadioButton」 と同様の箇所は省略)
package com.keicode.java.testapp;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
@SuppressWarnings("serial")
public class JRadioButtonTest extends JFrame {
public JRadioButtonTest() {
...
Border lineBorder = BorderFactory.createLineBorder(Color.LIGHT_GRAY);
TitledBorder titledBorder = BorderFactory.createTitledBorder(lineBorder, "Cities");
JPanel panel = new JPanel();
panel.setBorder(titledBorder);
panel.add(rad1);
panel.add(rad2);
add(panel);
}
...
タイトル付きの枠線は TitledBorder で簡単に作成できます。 しかし、デフォルトでは濃い黒の枠線なので、ここでは薄いグレーの枠線にするために、少し手を加えています。
まず、createLineBorder で枠線だけ作成します。ここで色を指定できます。
次に createTitledBorder で枠線だけの Border オブジェクトから TitledBorder を作成しています。
それを JPanel オブジェクトの setBorder メソッドでパネルに枠線を設定しています。