如何使用 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
}
});
}
}
我在相关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
}
});
}
}