2016-11-29 76 views
0

我使用ControlsFX ToggleSwitch像这样:如何使用controlsFX与FXML

<ToggleSwitch fx:id="toggle" onAction="#handleToggleAction" mnemonicParsing="false" GridPane.columnIndex="1" /> 

我希望能够在这个ToggleSwitch行动,在我的控制器的方法联系起来。

这是我的一些在控制器代码:

@FXML 
private void handleToggleAction(ActionEvent event) throws IOException { 
    Boolean selected = ((ToggleSwitch) event.getSource()).isSelected(); 

    if(selected) { 
     //do something 
    } else { 
     //something else 
    } 
} 

这引起了我的错误:

Cannot determine type for property. 

我不知道为什么,这是造成错误。在使用ToggleSwitch之前,我使用的是ToggleButton,处理器方法工作正常。 任何帮助表示赞赏。

回答

1

ToggleSwitch根本不包含onAction属性。

因此它可能是最好的方法initialize控制器注册一个监听器:

@FXML 
private void initialize() { 
    toggle.selectedProperty().addListener((observable, oldValue, newValue) -> { 
     if(newValue) { 
      //do something 
     } else { 
      //something else 
     } 
    }); 

}