ご覧のとおり、passwordFieldはナビゲーターのjButton1の前に配置されていますが、 usernameFieldがフォーカスされているときに TAB キーを押すと、フォーカスされている 2 番目の要素はjButton1であり、 passwordFieldではありません。
フォーカスの順序を実際に制御するものは何ですか?
検索する必要がある語句は「タブ オーダー」です。これに対する回答がここにあります。簡単に言うと、FocusTraversalPolicyサブクラスを実装し、 setFocusTraversalPolicy を呼び出してコンテナーで使用する必要があります。
デフォルトのフォーカス転送は、コンポーネントの順序よりも視覚的なレイアウトに基づいています。この場合、左から右、上から下に移動する必要があります。これは予想される動作です – MadProgrammer は編集中です
フォーカス サブシステムの使用方法、特にフォーカス トラバーサルのカスタマイズを参照してください。
更新しました
Enter キーを押して JTextFieldを切り替える方法を見てみましょう。これは、カスタム フォーカス ポリシーの使用方法を示しています。
コンポーネントに設定するタブ インデックスまたはタブ オーダーを検索してみてください