私には独特の要件があります:
多数のフィールドと [OK] および [キャンセル] ボタンを備えた [新しいオブジェクトの作成] モーダル ダイアログがあります。[OK] ボタンにフォーカスを設定して、ユーザーがダイアログを呼び出して Enter キーを押すだけで、デフォルト値で新しいオブジェクトを作成できるようにします。を呼び出してみrequestFocusInWindow()
ましたが、ウィンドウが実際に表示されるまで機能しません。ダイアログはモーダルであるため、ウィンドウが表示された後に呼び出すことはできません。setInitialFocusedComponent()
また、ダイアログ クラスのようなメソッドはありません。
OK、それでKeyListener
、ダイアログ内のすべてのフィールド (そのうち 3 つだけ、大したことではありません) の作成に進みました。これは、ユーザーが Enter キーを押した場合に手動で [OK] ボタンを押すようにするものです。ここでの問題は、最初のフィールド (したがってフォーカスされたフィールド) が でありJSpinner
、それが独自の を消費することKeyEvents
です。したがって、Enter キーを押しても何も起こりません。
要素を再編成せずに、ダイアログでこの「Enter to OK」動作を実現するにはどうすればよいですか?