javafx向按钮添加附加操作
你能帮我解决这个问题吗 我在类单元格中创建按钮,并向该按钮添加一些默认操作javafx向按钮添加附加操作,java,button,javafx,Java,Button,Javafx,你能帮我解决这个问题吗 我在类单元格中创建按钮,并向该按钮添加一些默认操作 public class Cell { private Button button; public Cell() { this.button = new Button(); this.button.setOnAction(e -> System.out.println("Default action")); } public Button getB
public class Cell {
private Button button;
public Cell() {
this.button = new Button();
this.button.setOnAction(e -> System.out.println("Default action"));
}
public Button getButton() {
return button;
}
}
在课堂游戏中,我想添加额外的行动,这个按钮,但我想保留默认的行动
public class Game {
public Game(Button button) {
// this add new action to button but delete previous one
// I want use both actions
button.setOnAction(e -> System.out.println("additional action"));
}
}
我知道新的行动凌驾于先前的行动之上。因此,如果我单击按钮,它将只打印其他操作
是否可以将新操作添加到按钮并保留以前的帐户?您可以在设置新操作之前获取当前操作,并调用旧操作和新操作:
public Game(Button button) {
EventHandler<ActionEvent> current = button.getOnAction();
button.setOnAction(e -> {
current.handle(e);
System.out.println("additional action");
});
}
您可以在设置新操作之前获取当前操作,并调用旧操作和新操作:
public Game(Button button) {
EventHandler<ActionEvent> current = button.getOnAction();
button.setOnAction(e -> {
current.handle(e);
System.out.println("additional action");
});
}
JavaFX内置了对将多个处理程序附加到事件的支持。检查文档,了解在调用任何setOn前缀方法时调用的和。需要记住的一点是,附加了addEventHandler的处理程序将在setOn方法之前触发,即附加了setOnAction的处理程序将在最后触发。您可以将游戏更改为以下内容:
public class Game {
public Game(Button button) {
// this add new action to button but delete previous one
// I want use both actions
button.addEventHandler(ActionEvent.ACTION, e -> System.out.println("additional action"));
}
}
JavaFX内置了对将多个处理程序附加到事件的支持。检查文档,了解在调用任何setOn前缀方法时调用的和。需要记住的一点是,附加了addEventHandler的处理程序将在setOn方法之前触发,即附加了setOnAction的处理程序将在最后触发。您可以将游戏更改为以下内容:
public class Game {
public Game(Button button) {
// this add new action to button but delete previous one
// I want use both actions
button.addEventHandler(ActionEvent.ACTION, e -> System.out.println("additional action"));
}
}
我们正在努力实现什么?如果你想要两个动作,为什么不把它们写在一个动作里?你想达到什么目的?如果你想要两个动作,为什么不在一个动作中写出呢??