0
請看下面的示例代碼。啓動應用程序並關注其中一個文本字段。現在點擊菜單。重點仍然放在TextField上。然而,我們的TextField觸發了它在焦點丟失方面的價值。如何實現在菜單或工具欄上單擊項目會觸發TextField上的焦點丟失?打開菜單時,JavaFX焦點在TextField上發生變化
public class FocusApp extends Application
{
@Override
public void start(Stage primaryStage) throws Exception
{
TextField l_text1 = new TextField("TextField 1");
TextField l_text2 = new TextField("TextField 2");
l_text1.focusedProperty().addListener((a,b,c) -> {
System.out.println("Focus change on TextField 1");
});
l_text2.focusedProperty().addListener((a,b,c) -> {
System.out.println("Focus change on TextField 2");
});
MenuBar l_menuBar = new MenuBar();
l_menuBar.setFocusTraversable(true);
Menu l_menu = new Menu("_Menu");
l_menu.getItems().add(new MenuItem("_Item"));
l_menuBar.getMenus().add(l_menu);
VBox l_vbox = new VBox(l_menuBar, l_text1, l_text2);
primaryStage.setScene(new Scene(l_vbox));
primaryStage.show();
}
public static void main(String[] args)
{
FocusApp.launch(args);
}
}
它可以做到這一點,謝謝! – WhiteAntelope