What are the differences between JRadioButton and JCheckBox in Java?
JRadioButton和JCheckBox组件都可以扩展JToggleButton类,主要区别在于JRadioButton是一组按钮,一次只能选择一个按钮,而JCheckBox是一组复选框,一次可以选择多个项目。
JRadioButton
-
JRadioButton是一个组件,它代表处于选中或未选中状态的项目。通常,创建一组单选按钮以向用户提供选项,但仅
一次可以选择一个选项。 - JRadioButton将生成一个ActionListener,ChangeListener和ItemListener接口。
- 单选按钮通常用于组中以显示多个选项,因此,它们与ButtonGroupclass一起使用。 ButtonGroup具有一个属性,即在给定的时间仅选择一个组中的一个按钮,并且该按钮不具有视觉外观。
- JRadioButton的重要方法是setText(),getText(),setEnabled(),setMnemonic()等。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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()等。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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(); } }); } } |
输出量