我的任务是在javafx中单击3个按钮时调用一个方法,该方法执行的代码只需更改所单击按钮的颜色。
根据场景,我在fxml中创建了3个按钮,并在控制器中定义了一个方法。我的任务代码很简单
myButton.setStyle("-fx-background-color:green");
现在请您告诉我如何才能获得被点击的特定按钮ID。这里myButton是被点击的按钮的fx: id。
提前谢谢。
fx:id永远不会传递给控制器。相反,当通过FXMLLoader加载fxml时,它们用于将控件实例注入控制器。
当你的fxml有一个控件
<Button fx:id="myButton">
您需要确保在控制器内创建的按钮引用应具有相同的名称。否则,按钮的实例化将失败。
public class MyController {
@FXML
private Button myButton; // name should be same as the fx:id
...
}
同样,如果您想在按钮上添加操作,您可以在FXML上添加它,
<Button fx:id="myButton" onAction="#myAction">
这将在控制器中查找具有相同名称的方法。每当您单击按钮时,它都会调用控制器中定义的方法。
public class MyController {
@FXML
private Button myButton; // name should be same as the fx:id
...
public void myAction(ActionEvent event) {
// Do Something
}
}
您可以执行以下操作:
@FXML
public void handleActionEvent(ActionEvent event) {
Object source = event.getSource();
if (source.equals(buttonA)) {
buttonA.setStyle("-fx-background-color:red");
} else if (source.equals(buttonB)) {
buttonB.setStyle("-fx-background-color:green");
} else if (source.equals(buttonC)) {
buttonC.setStyle("-fx-background-color:blue");
}
}
控制器内有三个按钮:
@FXML
private Button buttonA;
@FXML
private Button buttonB;
@FXML
private Button buttonC;
每个按钮都需要fxml中一致的id和onAction=“#handleActionEvent”。
问题内容: 我是iOS和Objective-C以及整个MVC范例的新手,我坚持以下几点: 我有一个充当数据输入表单的视图,我想给用户选择多个产品的选项。产品在另一个视图上以列出,并且我启用了多个选择。 我的问题是,如何将数据从一个视图传输到另一个视图?我将把选择保留在一个数组中,但是如何将其传递回先前的数据输入表单视图,以便在提交表单时将其与其他数据一起保存到Core Data? 我到处冲浪,看到
问题内容: 我正在尝试将应用程序从Objective-C转换为Swift,但是我找不到如何使用Swift在视图之间传递数据。我的Objective-C代码是 这样做是从根本上获取变量TheNum,并将其传递给另一个视图控制器上的变量num。我知道这可能是一个简单的问题,但是我对Swift感到非常困惑,因此,如果有人可以解释他们如何将其更改为Swift,将不胜感激! 谢谢 问题答案: 假设我们站在
voneController.java VotwoController.java
问题内容: 我想单击一列并将单元格索引发送到新阶段。但是我无法将参数()传递给另一个控制器。我已经尝试了所有方法,但仍然无法正常工作。 主控制器 EditClientController 问题答案: 如果要在FXML文件中指定控制器(因此您不能使用Deepak的答案), 并且 要访问方法中的索引(因此您不能使用José的答案),则可以使用控制器工厂:
我试图在不同FXML场景的控制器之间传递数据。但是我不能将数据传递给另一个控制器。这是我的第一个控制器。 } 这是第二个控制器。 }
我很难将参数从一个控制器传递到另一个控制器。 具体来说: LoginController向MainController传递。 null LoginController.java MainController.java