如何使用fxml触发javafx中文本域焦点的事件?

时间:2017-03-22 05:44:34

标签: java javafx fxml scenebuilder

我在相关fxml的控制器类中有这个功能。我需要在文本字段的焦点上触发此函数,但场景构建器没有类似于onfocusout的事件。如何使用控件类实现此目的?

@FXML
private void ValidateBikeNo(){
    Tooltip error = new Tooltip("This bike no exists");
    BikeNoIn.setTooltip(error);
}

2 个答案:

答案 0 :(得分:6)

您可以将focusListener附加到TextField,然后在其中执行代码。侦听器可以附加在控制器的initialize()方法内。

public class MyController implements Initializable {
    ...
    @FXML
    private Textfield textField;

    public void initialize() {
        ...
        textField.focusedProperty.addListener((ov, oldV, newV) -> {
           if (!newV) { // focus lost
              // Your code
           }
        });
         .....
    }
}

答案 1 :(得分:2)

你必须使用方法textField.focusedProperty()而不是textField.focusProperty

if(state.reset < action.payload){
  return {
   reset: action.payload
  }
}