This question already has answers here:
How do I make a JButton with an anonymous innerclass actionlistener remove itself on click?
(2个答案)
3年前关闭。
我有一些代码可以做到这一点:
创建一个ActionListener
一个。从将其连接到的按钮上移除自身(请参阅2。)
b。还有其他事情吗
将该ActionListener添加到按钮中
(在代码中:)
在编译时,Java将第4行报告为错误
有没有什么办法解决这一问题?我是否需要完全改变编写此块的方式?还是有某种
与:
由于您位于ActionListener匿名类中,因此
(2个答案)
3年前关闭。
我有一些代码可以做到这一点:
创建一个ActionListener
一个。从将其连接到的按钮上移除自身(请参阅2。)
b。还有其他事情吗
将该ActionListener添加到按钮中
(在代码中:)
ActionListener playButtonActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
playButton.removeActionListener(playButtonActionListener);
// does some other stuff
}
};
playButton.addActionListener(playButtonActionListener);
在编译时,Java将第4行报告为错误
(variable playButtonActionListener might not have been initialized)
,并拒绝编译。这可能是因为playButtonActionListener在技术上直到结束括号才完全初始化,并且removeActionListener(playButtonActionListener)
需要在playButtonActionListener初始化之后发生。有没有什么办法解决这一问题?我是否需要完全改变编写此块的方式?还是有某种
@
标志或其他解决方案? 最佳答案
更改
playButton.removeActionListener(playButtonActionListener);
与:
playButton.removeActionListener(this);
由于您位于ActionListener匿名类中,因此
this
表示该类的当前实例。10-07 15:12