Java BorderPane没有为文本字段设置适当的焦点顺序

Java BorderPane没有为文本字段设置适当的焦点顺序,java,javafx,focus,fxml,scenebuilder,Java,Javafx,Focus,Fxml,Scenebuilder,我在场景生成器的帮助下创建了以下场景: 我设置了一个边框窗格 在插入顶部区域,我放置了一个菜单栏 在插入中心,我放置了一些文本字段 在插入底部区域,我放置了一个按钮 打开我的应用程序时,焦点被赋予插入底部区域中的按钮 如何将焦点设置为“插入中心”部分的第一个文本字段 为了解决这个问题,我尝试了以下方法: 我确保层次结构顺序正确(即中心 节点位于底部节点之前) 我尝试在我的initialize()声明中使用.requestFocus(),但由于initialize()发生在加载控制器之前,如

我在场景生成器的帮助下创建了以下场景:

  • 我设置了一个边框窗格
  • 在插入顶部区域,我放置了一个菜单栏
  • 在插入中心,我放置了一些文本字段
  • 在插入底部区域,我放置了一个按钮
打开我的应用程序时,焦点被赋予插入底部区域中的按钮

如何将焦点设置为“插入中心”部分的第一个文本字段

为了解决这个问题,我尝试了以下方法:

  • 我确保层次结构顺序正确(即中心 节点位于底部节点之前)
  • 我尝试在我的
    initialize()
    声明中使用
    .requestFocus()
    ,但由于
    initialize()
    发生在加载控制器之前,如中所述,因此该操作无效
  • 我研究的另一个选项是@Uluk Biy在这个问题上的回答:。然而,在我的应用程序中,我有两个控制器(main_controller.java和sample_app_controller)。main_controller.java负责启动应用程序,这意味着它有
    public static void main(String[]args){launch(args));}
    public void start(Stage primaryStage)
    函数,我的应用程序通过这些函数运行。示例应用程序控制器负责处理第二个屏幕(我在本文中提供的屏幕)中发生的任何事情。我知道我可以将@Uluk Biy提供的代码放在我的
    public void start(Stage primaryStage
    函数中。但是,此时我处于一个由不同java文件控制的不同屏幕中,因此我无法真正应用该解决方案
  • 相关的:相关的: