[は、Java Swing] JavaでのJRadioButton – JavaでのJRadioButton

コンテンツ
JRadioButtonを作成します。
グループ内のJRadioButtonを入れて
JRadioButtonのイベントを開始します

JRadioButtonは、私たちが祇園属性を選択できるようにするオブジェクトです JCheckBoxの. しかし、我々は、ユーザーが属性のみのいずれかを選択するときのJRadioButtonを使用する傾向があります. たとえば、ユーザーが性別を選ぶだけMまたはFを選択されています.

JRadioButtonを作成する方法 – JRadioButtonを作成する方法

JRadioButtonを作成するために、我々は次のコンストラクタのいずれかを使用:
– JRadioButton(): JRadioButtonノーテキストを作成していません, 前選択されていません.
– JRadioButton(アクションA): JRadioButtonイベントAを作成します。
– JRadioButton(アイコンアイコン): アイコンでのJRadioButtonを作成します。
– JRadioButton(アイコンアイコン, ブール選択): アイコンでのJRadioButtonを作成し、選択を置きますか
– JRadioButton(文字列のテキスト): テキストでのJRadioButtonを作成します。
– JRadioButton(文字列のテキスト, ブール選択): テキストでのJRadioButtonを作成し、選択されるように設定するかではありません
– JRadioButton(文字列のテキスト, アイコンアイコン): テキストとアイコンを作成のJRadioButton
– JRadioButton(文字列のテキスト, アイコンアイコン, ブール選択): テキストでのJRadioButtonを作成します。, アイコンとプット・オプション.

今、私たちは、作成した実装します JFrameの 含めて 2 少年と少女ののJRadioButton (少年は、デフォルトで選択されています) ととも​​に 1 JLabelの JRadioButtonを選択するときに結果を表示する表示を行います.

create JRadioButton

package nguyenvanquan7826.JRadioButton;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class MyRadioButton extends JFrame {
	private JRadioButton radBoy, radGirl;
	private JLabel lbGender;

	public MyRadioButton() {
		// add main panel
		add(createMainPanel());
		// set display
		setTitle("JRadioButton");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(200, 100);
		setLocationRelativeTo(null);
		setVisible(true);
	}

	// create main panel
	private JPanel createMainPanel() {
		JPanel panel = new JPanel();
		// add two radiobutton and a label to frame
		panel.add(radBoy = createRadioButton("Boy", true));
		panel.add(radGirl = createRadioButton("Girl", false));
		panel.add(lbGender = createLabel("You are a boy"));
		return panel;
	}

	// create a JRadioButton with name
	private JRadioButton createRadioButton(String name, boolean select) {
		JRadioButton rad = new JRadioButton(name, select);
		return rad;
	}

	// create a JLabel with text
	private JLabel createLabel(String text) {
		JLabel lb = new JLabel(text);
		return lb;
	}

	public static void main(String[] args) {
		new MyRadioButton();
	}
}

それはのJRadioButtonをしました, あなたがセックスを選択したときただし、この現象は、両方のJLabelで起こることができません, でも同時に両方を選択することができます 2 JRadioButton. だから、唯一のJRadioButtonを選択する方法? JRadioButtonのイベントをキャプチャする方法?

グループ内のJRadioButtonを入れて – JRadioButtonのグループを設定します

そのためには、単にユーザーたちはグループのJRadioButtonに置く必要があるのJRadioButtonのいずれかを選択することができます – ButtonGroupを. それは我々がButtonGroupを作成し、そこにそれらを置く必要があることを意味ButtonGroupを. あなたは、メソッドのコードを編集 createMainPanel() 次のように:

private JPanel createMainPanel() {
	JPanel panel = new JPanel();
	// add two radiobutton and a label to frame
	panel.add(radBoy = createRadioButton("Boy", true));
	panel.add(radGirl = createRadioButton("Girl", false));
	panel.add(lbGender = createLabel("You are a boy"));

	// create ButtonGroup for radBoy and radGirl
	ButtonGroup genderGroup = new ButtonGroup();
	// add radBoy and radGirl into Group
	genderGroup.add(radBoy);
	genderGroup.add(radGirl);

	return panel;
}

だから今私たちは男の子か女の子は、選択.

JRadioButtonのイベントを開始します – JRadioButtonのアクション

次はのJRadioButtonの開始イベントとなります, それはJCheckBoxのためのイベントをキャプチャするために似ています. 我々は必要とします インターフェイスはのItemListenerを実装 実行する addItemListener JRadioButtonのため. 次の書き込み方法であります itemStateChanged イベントをキャッチします. 1のJRadioButtonが法によって選択されたか否かを確認してください isSelected().
我々は、メソッドを改訂 createRadioButton 次のように:

private JRadioButton createRadioButton(String name, boolean select) {
	JRadioButton rad = new JRadioButton(name, select);
	rad.addItemListener(this);
	return rad;
}

次のイベントは、メソッドに取り込まれ itemStateChanged

private void changeSelect() {
	lbGender.setText("You are a " + (radBoy.isSelected() ? "boy" : "girl"));
}

@Override
public void itemStateChanged(ItemEvent e) {
	changeSelect();
}

次のように私たちの完全なコードです。:

package nguyenvanquan7826.JRadioButton;

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class MyRadioButton extends JFrame implements ItemListener {
	private JRadioButton radBoy, radGirl;
	private JLabel lbGender;

	public MyRadioButton() {
		// add main panel
		add(createMainPanel());
		// set display
		setTitle("JRadioButton");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(200, 100);
		setLocationRelativeTo(null);
		setVisible(true);
	}

	// create main panel
	private JPanel createMainPanel() {
		JPanel panel = new JPanel();
		// add two radiobutton and a label to frame
		panel.add(radBoy = createRadioButton("Boy", true));
		panel.add(radGirl = createRadioButton("Girl", false));
		panel.add(lbGender = createLabel("You are a boy"));

		// create ButtonGroup for radBoy and radGirl
		ButtonGroup genderGroup = new ButtonGroup();
		// add radBoy and radGirl into Group
		genderGroup.add(radBoy);
		genderGroup.add(radGirl);

		return panel;
	}

	// create a JRadioButton with name
	private JRadioButton createRadioButton(String name, boolean select) {
		JRadioButton rad = new JRadioButton(name, select);
		rad.addItemListener(this);
		return rad;
	}

	// create a JLabel with text
	private JLabel createLabel(String text) {
		JLabel lb = new JLabel(text);
		return lb;
	}

	private void changeSelect() {
		lbGender.setText("You are a " + (radBoy.isSelected() ? "boy" : "girl"));
	}

	@Override
	public void itemStateChanged(ItemEvent e) {
		changeSelect();
	}

	public static void main(String[] args) {
		new MyRadioButton();
	}

}

続きを読む: クラスのJRadioButton, JRadioButtonを使用