BorderPane没有为TextFields设置适当的焦点顺序

时间:2017-11-04 00:02:56

标签: java javafx focus fxml scenebuilder

我在Scene Builder的帮助下创建了以下场景:

  • 我设置了BorderPane
  • 插入TOP 区域中,我放置了一个MenuBar
  • 插入CENTER 中,我放置了一些TextFields
  • 插入BOTTOM 区域中,我放置了一个Button

打开我的应用程序后,焦点将被赋予放置在插入BOTTOM 部分的按钮。

This is an image depicting this specific scenario

如何将焦点设置到插入CENTER 部分中的第一个TextField?

我已尝试以下方法来解决此问题:

  1. 我确保层次结构顺序正确(即中心 节点位于底部节点之前)。
  2. 我尝试在我的.requestFocus()声明中使用initialize(),但是在加载控制器之前initialize()发生了public static void main(String[] args) {launch(args));},但JavaFx:What if I want to do something after initialize(),before the scene show,how can I achieve this?中所述。
  3. 我调查的另一个选项是@Uluk Biy在这个问题中的回答:JavaFX: Focusing textfield programmatically。但是,在我的应用程序中,我有两个控制器(main_controller.java和sample_app_controller)。 main_controller.java负责启动应用程序,这意味着它具有运行我的应用程序的public void start(Stage primaryStage)public void start(Stage primaryStage函数。 sample_app_controller负责处理第二个屏幕中发生的任何事情(我在本文中提供的那个)。我知道我可以将@Uluk Biy提供的代码放在我的 $a = gc "$home\documents\textfile.txt" for ($i = 0; $i -lt $a.Count + 1; $i++) { $a[($a.count-1) - $i] } 函数中。但是,在那时我处于一个不同的屏幕,由不同的java文件控制,所以我无法真正应用该解决方案。

0 个答案:

没有答案