[英]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.