我刚刚开始用Java学习代码。我在添加一个监听器时遇到了问题。我一直在努力解决这个问题一个小时但我找不到解决方案。有人可以看看,看看有什么不对。这是我的代码:
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);
}
}
答案 0 :(得分:1)
您没有添加ActionListener
。 this
是指您的MultiListenerFrame
课程。
在某处定义一个侦听器并添加:
this.button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO something
}
});