对于ComboBox,addActionListener - >为actionPerformed?

时间:2015-12-22 22:23:08

标签: java codenameone

如果我有

ComboBox box = b;
b.addActionListener(this);

我不应该期望调用this.actionPerformed(event) 当组合框运行时?

我有一个带有几个组合框的测试框架,似乎可以运行 通常,但是没有调用actionPerformed。也许是框架 本身需要以某种方式武装起来吗?

3 个答案:

答案 0 :(得分:1)

你的问题不是那么清楚,你没有给它一个合适的头衔。

如果要将ActionListener添加到ComboBox,请执行以下操作:

ComboBox box = new ComboBox();
box.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent evt) {
    }
});

答案 1 :(得分:1)

根据我的理解,你只想从一个处理动作事件的类中创建一个ComboBox。为此,我建议该类继承自ActionListener并覆盖(使用@Override标记)actionPerformed。如果该类未从ActionListener继承,则仅覆盖操作执行是不够的。

public class MyListener extends ActionListener {
    @Override 
    public void actionPerformed (ActionEvent evt){
         //code you want to execute when the event happens
    }
    public void methodCreatingComboBox(){
        ComboBox b = new ComboBox();
        b.addActionListener(this);
        //other stuffs
    }
}

这就像魅力一样!并且您可以将同一个MyListener实例用于多个事件。

答案 2 :(得分:0)

这是正确的答案。我使用的是com.codename1.ui.Dialog 顶级窗口。我转而使用com.codename1.ui.Form 现在这些行动正在按预期发射。

Dialog构建的环境中的东西(扩展Form) 正在干扰事件机制。也许是设计。