如何在 JavaFX 中处理节点焦点
How to handle Node focus in JavaFX
当 Node
获得焦点时,在 JavaFX 中调用什么 Event
?
我有 TextField
,可以通过鼠标 (setOnMouseClicked
) 或其他 Node
的 TAB 键来聚焦(我的问题来了)。
如何处理第二种可能的焦点?有没有办法同时处理这两个问题?
您可以收听 focused
property:
TextField tf = new TextField();
TextField tf2 = new TextField();
tf.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (newValue) {
System.out.println("Node 1: Mine!");
}
});
tf2.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (newValue) {
System.out.println("Node 2: Mine!");
}
});
Scene scene = new Scene(new VBox(tf, tf2), 300, 250);
如果你改变焦点,你可以观察到2 TextField
"arguing who's got the focus"。
当 Node
获得焦点时,在 JavaFX 中调用什么 Event
?
我有 TextField
,可以通过鼠标 (setOnMouseClicked
) 或其他 Node
的 TAB 键来聚焦(我的问题来了)。
如何处理第二种可能的焦点?有没有办法同时处理这两个问题?
您可以收听 focused
property:
TextField tf = new TextField();
TextField tf2 = new TextField();
tf.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (newValue) {
System.out.println("Node 1: Mine!");
}
});
tf2.focusedProperty().addListener((observable, oldValue, newValue) -> {
if (newValue) {
System.out.println("Node 2: Mine!");
}
});
Scene scene = new Scene(new VBox(tf, tf2), 300, 250);
如果你改变焦点,你可以观察到2 TextField
"arguing who's got the focus"。