繁体   English   中英

Java:是否可以导入禁用摆动组件的动作侦听器?

[英]Java: Can I import an action listener that disables a swing component?

我在名为MyForm的JForm扩展上有一个JButton。 该按钮执行相当长的代码。 其中的代码是“ MyForm.this.setEnabled(false)”,用于在执行按钮方法时禁用表单。 (随后是“ MyForm.this.setEnabled(true)”。)

(之所以这样做,是因为这是我发现的唯一解决方案,可以确保忽略按钮执行期间的任何鼠标单击。否则,我发现它们会排队并在之后立即执行)。

我可以将此按钮的代码导出到其他文件中,以导入各种其他形式吗?

编辑:代码:

JButton myButton = new JButton("Button Text");
myButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        MyForm.this.setEnabled(false);
        ...
        MyForm.this.setEnabled(true);
    }
});

将禁用的表单作为参数传递给侦听器的构造函数:

public class FormDisablingActionListener implements ActionListener {
    private final Form formToDisable;

    public FormDisablingActionListener(Form formToDisable) {
        this.formToDisable = formToDisable;
    }

    @Override
    public void actionPerformed(ActionEvent e){
        this.formToDisable.setEnabled(false);
        ...
        this.formToDisable.setEnabled(true);
    }
}

顺便说一句,当您使用匿名类引用其外部类实例时,这就是编译器为您生成的。

然后按以下方式使用它:

JButton myButton = new JButton("Button Text");
myButton.addActionListener(new FormDisablingActionListener(this));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM