Java 中的 JRadioButton 和 JCheckBox 有什么区别?
awtjavaobject oriented programmingprogrammingswing
JRadioButton 和 JCheckBox 组件都可以扩展 JToggleButton 类,主要区别在于 JRadioButton 是一组按钮,其中 一次只能选择一个按钮,而 JCheckBox 是一组复选框,其中 一次可以选择多个项目。
JRadioButton
- JRadioButton 是一个表示处于选中或未选中状态的项目的组件。通常,会创建一组单选按钮来向用户提供选项,但一次只能 选择一个选项。
- JRadioButton将生成ActionListener、ChangeListener和ItemListener接口。
- 单选按钮通常成组使用以显示多个选项,因此,它们与ButtonGroup类一起使用。 ButtonGroup 具有一个属性,即在给定时间内仅选择组中的一个按钮,并且它没有视觉外观。
- JRadioButton 的重要方法是setText()、getText()、setEnabled()、setMnemonic()等。
示例
import java.awt.*; import javax.swing.*; public class JRadioButtonTest extends JFrame { public JRadioButtonTest() { super("JRadioButton Test"); JRadioButton jrb1 = new JRadioButton("Java"); JRadioButton jrb2 = new JRadioButton("Python"); JRadioButton jrb3 = new JRadioButton("Scala"); ButtonGroup group = new ButtonGroup(); group.add(jrb1); group.add(jrb2); group.add(jrb3); setLayout(new FlowLayout()); add(jrb1); add(jrb2); add(jrb3); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(450,375); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new JRadioButtonTest(); } }); } }
输出
JCheckBox
- JCheckBox 是一个组件,它表示显示 选中或未选中状态 的项目。我们可以通过单击组件的复选框来更改此状态。
- 标准的 JCheckBox 组件包含一个 复选框 和一个描述复选框用途的 标签。
- JCheckBox 可以生成 ItemListener 或 ActionListener 接口。
- JCheckBox 的重要方法是 setLabel()、getLabel()、setState()、getState() 等。
示例
import java.awt.*; import javax.swing.*; public class JCheckBoxTest extends JFrame { JCheckBoxTest() { super("JCheckBox Test"); JLabel lblHobbies = new JLabel("Languages"); JCheckBox chkSports = new JCheckBox("Java"); JCheckBox chkMusic = new JCheckBox("Python ",true); JCheckBox chkReading = new JCheckBox("Scala"); setLayout(new FlowLayout()); add(lblHobbies); add(chkSports); add(chkMusic); add(chkReading); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(450,375); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new JCheckBoxTest(); } }); } }