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

How to trigger an event on focus out for a textfield in javafx using fxml?

我在相关fxml的控制器class中有这个功能。我需要在文本字段聚焦时触发此功能,但场景生成器没有类似于 onfocusout 的事件。如何使用控件 class?

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

您可以将 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
           }
        });
         .....
    }
}

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

public class MyController implements Initializable { 
...         
@FXML        
private Textfield textField;
public void initialize() {
   textField.focusedProperty().addListener((ov, oldV, newV) -> {
      if (!newV) { // focus lost
              // Your code
           }
        });
    }
}