【发布时间】:2019-05-24 20:21:47
【问题描述】:
如何知道哪个按钮触发了该功能。我在 stackoverflow like this one 上阅读了其他答案。我尝试创建一个新按钮并为其赋值event.getSource(),但它不起作用
@FXML
Button v1;
@FXML
Button v2;
@FXML
Button v3;
@FXML
Button v4;
@FXML
Button v5;
@FXML
Button v6;
public void printButton(ActionEvent event){
Button sourceButton = (Button) event.getSource();
if(sourceButton == v1){
System.out.print("v1");
}
else if(sourceButton == v2){
System.out.print("v2");
}
else if(sourceButton == v3){
System.out.print("v3");
}
else if(sourceButton == v4){
System.out.print("v4");
}
else if(sourceButton == v5){
System.out.print("v5");
}
else if(sourceButton == v6){
System.out.print("v6");
}
}
我在 fxml 中创建了按钮,它调用了相同的函数 printButton();
【问题讨论】:
-
Button没有复制构造函数。但是:你怎么知道代码不起作用?您唯一要做的就是分配一些字段,没有输出到控制台,没有修改场景......如果没有更多信息,我们无法在这里提供帮助。 (投票结束) -
如果你的 fxml 正确,那么你的代码应该可以工作。请也发布你的 fxml。顺便说一句,我个人会将 Buttons 与 button.equals(otherButton) 进行比较
-
@micpog90 与 button.equals(otherButton) 比较有效。谢谢。