【问题标题】:Java ActionListener (actionPerfomed) not working for me [duplicate]Java ActionListener(actionPerfomed)不适合我[重复]
【发布时间】:2018-03-25 22:38:20
【问题描述】:

下面是一个简单的学习ActionListener的代码,但是我不是很明白代码有什么问题。选择任何组件时,程序不打印任何内容。有什么建议吗?谢谢。

public class ComboBoxDemo extends JFrame implements ActionListener{

private String[] str = {"One", "Two", "Three", "Four"};
private String[] d = {"1", "2", "3", "4"};
private JPanel panel;
private JButton button;
private JComboBox cb, cb1;
private int count = 0;

public ComboBoxDemo() { 
    panel = new JPanel();
    button = new JButton("Click");
    setTitle("Demo");
    panel.setLayout(new FlowLayout());
    cb = new JComboBox<String>(str); 
    cb1 = new JComboBox<String>(d);
    panel.add(cb);
    panel.add(cb1);
    panel.add(button);
    getContentPane().add(panel);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(200,200);
    setVisible(true);   
}
public static void main(String[] args) {
    new ComboBoxDemo();
}

@Override
public void actionPerformed(ActionEvent e) {
    if(e.getSource() == button) {
        count = count*2;
        System.out.println(count);
    }
    if(e.getSource() == cb) {
        count++;
        System.out.println(count);
    }
    if(e.getSource() == cb1) {
        count--;
        System.out.println(count);
    }
    }
}

【问题讨论】:

    标签: java


    【解决方案1】:

    你必须调用'addActionListener(al)'到你的组件,它会监听它。

    panel.add(cb);
    panel.add(cb1);
    panel.add(button);
    cb.addActionListener (this);
    cb1.addActionListener (this);
    button.addActionListener (this);
    

    作为ActionListener,你可以使用this,因为这是实现ActionListener的ComboBoxDemo。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2021-04-27
      • 2020-05-11
      • 1970-01-01
      相关资源
      最近更新 更多