Java Swing JCheckBox

Danh sách bài viết về thành phần giao diện Java Swing :

Trong bài viết này kynangcntt.info hướng dẫn các bạn cách thức sử dụng điều khiển JCheckBox được minh họa như trong hình sau:

 

Chương trình trên thực hiện chức năng hiển thị những sở thích được người dùng lựa chọn khi kích chọn vào nút Hiển Thị, chương trình cho phép thêm các điều khiển JCheckBox vào vùng được bao phủ “Sở thích của bạn là gì ?” với số lượng checkbox tùy ý mà không cần chỉnh sửa code trong quá trình lấy thông tin do người dùng lựa chọn.

SAU ĐÂY LÀ CODE CỦA CHƯƠNG TRÌNH TRÊN

package kynangcntt.info;

import java.awt.Color;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;

/**
 *
 * @author kynangcntt.info
 */
public class JCheckBoxDemo {
    private JCheckBox chkMusic,chkReading,chkCooking;
    private JLabel lblResult, lblDisplayResult;
    private JButton btnDisplay;
    private JPanel pSoThich;
    
    public JCheckBoxDemo() {
        initComponents();
    }

    private void initComponents() {
        JFrame frmMainWindow = new JFrame("JCheckBox Demo");
        frmMainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frmMainWindow.setSize(375, 180);
        frmMainWindow.setResizable(false);
        frmMainWindow.setAlwaysOnTop(true);
        
        frmMainWindow.setContentPane(createGUI());
        
        frmMainWindow.getContentPane().setBackground(Color.WHITE);
        frmMainWindow.setLocationRelativeTo(null);
        frmMainWindow.setVisible(true);
    }
    
    private JPanel createGUI(){
        JPanel myGUI = new JPanel();
        myGUI.setLayout(null);          
        
        pSoThich = new JPanel();
        pSoThich.setBorder(BorderFactory.createTitledBorder(null, "Sở thích của bạn là gì ?", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION));
        pSoThich.setBounds(10, 15, 350, 70);
        pSoThich.setBackground(Color.WHITE);
        pSoThich.setLayout(null);
        
        chkMusic = new JCheckBox("Nghe nhạc");
        chkMusic.setBounds(10, 25, 100, 30);
        chkMusic.setBackground(Color.WHITE);
        pSoThich.add(chkMusic);
        
        chkReading = new JCheckBox("Đọc sách");
        chkReading.setBounds(120, 25, 100, 30);
        chkReading.setBackground(Color.WHITE);
        pSoThich.add(chkReading);
        
        chkCooking = new JCheckBox("Nấu ăn");
        chkCooking.setBounds(230, 25, 100, 30);
        chkCooking.setBackground(Color.WHITE);
        pSoThich.add(chkCooking);
        
        lblResult = new JLabel("Kết quả: ");
        lblResult.setBounds(10, 90, 70, 20);
        
        lblDisplayResult = new JLabel("");
        lblDisplayResult.setBounds(90, 90, 250, 20);
        
        btnDisplay = new JButton("Hiển thị");
        btnDisplay.setBounds(110, 120, 150, 20);
        btnDisplay.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                btnDisplayClickHandler(e);
            }
        });
        
        myGUI.add(pSoThich);
        myGUI.add(lblResult);
        myGUI.add(lblDisplayResult);
        myGUI.add(btnDisplay);
        return myGUI;
    }
    
    private void btnDisplayClickHandler(ActionEvent e){
        String strResult = "";
        for (Component com : pSoThich.getComponents()) {
            if (com instanceof JCheckBox) {
                JCheckBox chk = (JCheckBox) com;
                if (chk.isSelected()) {
                    strResult += chk.getText().trim() + ", ";
                }
            }
        }
        lblDisplayResult.setText(strResult.substring(0, strResult.length()-2));
    }
    
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new JCheckBoxDemo();
            }
        });
    }
}

Bài tiếp theo : Java Swing JRadio Button