我有我的UIController类和ButtonMethods类。 ButtonMethods类包含按钮操作的所有代码。我需要能够使用ButtonMethods类中的控制器类中的按钮。例如,我在控制器类中定义了这些
ButtonMethods button = new ButtonMethods();
@FXML Button buttonLockdown;
@FXML Button buttonRelease;
例如,在单击按钮Lockdown时有一个ActionEvent
@FXML
private void actionLockdown(ActionEvent event) {
button.lockdown();
理想情况下,我希望ButtonMethods能够做到这一点:
public void lockdown() {
buttonLockdown.setDisable(true);
onLockdown = true;
buttonRelease.setDisable(false);
由于各种原因,我不能仅仅将代码放入动作事件中,而将按钮对象放入参数中会使我的工作变得混乱。那么如何将FXML对象放入按钮类呢?
最佳答案
尝试发送UIController本身作为参数:
private UIController thisController;
@Override
public void initialize(URL url, ResourceBundle rb) {
thisController = this;
}
@FXML
private void actionLockdown(ActionEvent event) {
button.lockdown(thisController);
然后
public void lockdown(UIController controller) {
controller.getButtonLockdown().setDisable(true);
onLockdown = true;
controller.getButtonRelease().setDisable(false);
您还可以在适当的情况下使用绑定。