JCheckbox 侦听器

JCheckbox listener

我最近才开始在 Java 学习代码。我在添加 listener.I 时遇到了一个问题,我已经为这个问题苦苦挣扎了一个小时,但我找不到 solution.Could 请有人看一下,看看有什么问题。这是我的代码:

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import java.awt.HeadlessException;
import java.awt.event.ItemEvent;

import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MultiListenerFrame extends JFrame {

    JPanel panel;
    JLabel label;
    JCheckBox button1;
    JCheckBox button2;
    JCheckBox button3;

    public MultiListenerFrame() throws HeadlessException {
        this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
        this.setSize(600,500);

        panel = new JPanel();
        panel.setLayout(new FlowLayout());
        add(BorderLayout.NORTH, panel);

        button1  = new JCheckBox("button1");
        button2  = new JCheckBox("button2");
        button3  = new JCheckBox("button3");
        panel.add(button1);
        panel.add(button2);
        panel.add(button3);

        button1.addActionListener(this); // here is my problem 


    }
    public void itemStateChanged(ItemEvent e) {
        Object source = e.getItemSelectable();
        if(source == button1) {
            label.setText("Hello");
        } else if (source == button2) {
            label.setText("world");
        } else if(source == button23) {
            label.setText("!!!");
        }

    }

    public static void main(String[] args) {
        MultiListenerFrame frame = new MultiListenerFrame();
        frame.setVisible(true);
    }

}

您没有添加 ActionListenerthis指的是你的MultiListenerFrameclass.

在某处定义一个侦听器并添加:

this.button1.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO something
    }
});