如您所见,passwordField在导航器中位于jButton1之前,但是,当usernameField获得焦点并按下 TAB 键时,第二个被关注的元素是jButton1而不是passwordField。
真正控制焦点顺序的是什么?
您需要搜索的短语是“tab order”:这里有一个答案。简而言之,您需要实现一个FocusTraversalPolicy子类,并通过调用setFocusTraversalPolicy让您的容器使用它。
默认焦点转移更多地基于视觉布局和组件的顺序。在这种情况下,它会想要从左到右,从上到下。这是预期的行为——MadProgrammer 刚刚编辑
看看How to use the Focus Subsystem,特别是Customizing Focus Traversal
更新
看一下通过按 Enter 键切换 JTextFields,它演示了自定义焦点策略的使用
尝试搜索选项卡索引或选项卡顺序以设置组件