我希望这个问题实际上不是现有问题的重复!我搜索后没有找到对我的问题的好的答案。这里是:
我有一个MyGame类,其中包含一个Button成员对象。每当单击该按钮时,MyGame都会执行某些操作。
class MyGame extends Application {
MyBoard board = new MyBoard();
MyButton btn = new MyButton();
public MyGame() {
board.add(btn);
}
// this method should be called whenever the button is clicked!
public void doSomething() {
doingSomething();
}
}
class MyButton extends Button {
int someData;
// some code here
public MyButton() {
this.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
MyGame.doSomething(); // ==> NOT POSSIBLE!!!
}
});
}
}
接口是使MyButton和MyGame之间进行通信的最佳方法吗?如果是这样,您将如何做?
我不想将MyGame对象的引用移交给MyButton对象!我认为这不是解决此问题的好方法。
我感谢任何建议和帮助!
干杯
最佳答案
在MyGame
的构造函数中,可以将ActionListener
添加到btn
,在对按钮执行操作时将调用该。
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Insert thing to do within MyGame here
}
});