2016-03-08 93 views
0

在关注Node时,在JavaFX中调用了什么Event如何处理JavaFX中的节点焦点

我有TextField,它可以通过鼠标(setOnMouseClicked)或其他Node(这里我的问题来了)的TAB键来关注。

我该如何处理第二种焦点的可能性?有没有办法如何同时处理两个?

回答

0

你可以听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“争论谁拥有焦点”。