Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง JRadioButton และ JCheckBox ใน Java

ทั้ง JRadioButton และ JCheckBox ขยายมาจากคลาส JToggleButton ความแตกต่างหลักคือ JRadioButton เป็นกลุ่มปุ่มที่ เลือกได้เพียงปุ่มเดียวในเวลาเดียวกัน ส่วน JCheckBox เป็นกลุ่มเช็กบ็อกซ์ที่ เลือกได้หลายรายการพร้อมกัน

JRadioButton

  • คอมโพเนนต์แสดงตัวเลือกที่มีสถานะเลือก/ไม่เลือก ใช้เป็นกลุ่มเพื่อให้ผู้ใช้เลือก เพียงหนึ่งตัวเลือก
  • สร้าง Listener ได้: ActionListener, ChangeListener, ItemListener
  • ใช้ร่วมกับ ButtonGroup เพื่อบังคับให้เลือกได้เพียงตัวเดียว (ButtonGroup ไม่มีรูปลักษณ์ตัวเอง)
  • เมธอดสำคัญ: setText(), getText(), setEnabled(), setMnemonic()

ตัวอย่าง JRadioButton

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

  • คอมโพเนนต์แสดงรายการที่มีสถานะเลือก/ไม่เลือก เปลี่ยนสถานะได้โดยคลิกที่เช็กบ็อกซ์
  • ประกอบด้วย เช็กบ็อกซ์ และ ป้ายชื่อ (label)
  • สร้าง Listener ได้: ItemListener หรือ ActionListener
  • เมธอดสำคัญ: setLabel(), getLabel(), setState(), getState()

ตัวอย่าง JCheckBox

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(); }
        });
    }
}

สรุปความแตกต่าง

คุณสมบัติJRadioButtonJCheckBox
การเลือกเดียว (Single)หลาย (Multiple)
กลุ่มต้องใช้ ButtonGroupไม่จำเป็น
ListenerAction, Change, ItemItem, Action