如何在 JavaFX TextField 上以对焦和外聚焦执行任务?
我正在从事JavaFX项目。我需要在JavaFX上执行一些任务。TextField
例如,在“我要打印”的“聚焦”事件上TextField
System.out.println("Textfield on focus");
并在“出焦”事件上,它应该打印
System.out.println("Textfield out focus");
我正在从事JavaFX项目。我需要在JavaFX上执行一些任务。TextField
例如,在“我要打印”的“聚焦”事件上TextField
System.out.println("Textfield on focus");
并在“出焦”事件上,它应该打印
System.out.println("Textfield out focus");
我认为看到一个示例可能会有所帮助,该示例将ChangeListener指定为像scottb提到的匿名内部类。
TextField yourTextField = new TextField();
yourTextField.focusedProperty().addListener(new ChangeListener<Boolean>()
{
@Override
public void changed(ObservableValue<? extends Boolean> arg0, Boolean oldPropertyValue, Boolean newPropertyValue)
{
if (newPropertyValue)
{
System.out.println("Textfield on focus");
}
else
{
System.out.println("Textfield out focus");
}
}
});
我希望这个答案是有帮助的!
可以使用 的焦点属性
来附加 .Node
ChangeListener
扩展Brendan的答案:从JavaFX8(因为它附带Java 8),lambda表达式与三元运算符相结合可以使其非常紧凑:
textField.focusedProperty().addListener((obs, oldVal, newVal) ->
System.out.println(newVal ? "Focused" : "Unfocused"));