2016-11-29 2 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 
     } 
    }); 

}