2016-03-08 91 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「爭論誰擁有焦點」。