[的Java Swing] 一个JRadioButton Java中 – 一个JRadioButton在java中

内容
创建一个JRadioButton
一个JRadioButton投入组
获取事件一个JRadioButton

一个JRadioButton是一个对象,允许我们选择脆如属性 JCheckBox的. 然而,我们倾向于使用一个JRadioButton当用户想要只选择属性之一. 例如,用户选择性别只是选择了为M或F.

如何创建一个JRadioButton – 如何创建一个JRadioButton

要创建一个JRadioButton我们用下面的构造函数之一:
– 一个JRadioButton(): 创建一个JRadioButton没有文本, 没有预选.
– 一个JRadioButton(行动): 创建一个JRadioButton所述事件的
– 一个JRadioButton(图标图标): 用图标创建一个JRadioButton
– 一个JRadioButton(图标图标, 布尔选择): 与选定的图标创建一个JRadioButton设置与否
– 一个JRadioButton(文本字符串): 文本创建一个JRadioButton
– 一个JRadioButton(文本字符串, 布尔选择): 与文本创建一个JRadioButton并设置被选择或不
– 一个JRadioButton(文本字符串, 图标图标): 创建文字和图标一个JRadioButton
– 一个JRadioButton(文本字符串, 图标图标, 布尔选择): 文本创建一个JRadioButton, 图标和看跌期权.

现在,我们将执行创建 的JFrame 含 2 男孩和女孩的一个JRadioButton (男孩被默认选中) 同 1 的JLabel 选择一个JRadioButton当执行显示器的显示效果.

创建一个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 抓事件. 检查一个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