我有一些代码可以做到这一点:
创建一个 ActionListener
一个。将自身从将附加到的按钮中移除(参见 2.)
湾。做一些其他的事情
将该 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 初始化之后发生。
有没有什么办法解决这一问题?我必须完全改变我写这个块的方式吗?还是有某种@
标志或其他解决方案?