Javaスイングボタンを「フォーカス不可」にしたい。ボタンはフォーカスを受け取らないようにする必要がありますが、マウス クリックを受け取ることができる必要があります。
次のオプションを考えましたが、これらは問題を完全に解決しないか、エレガントに見えません。他の/より良い/提案されたオプションはありますか?
- ボタンがフォーカスを受け取るとすぐに次のコンポーネントにフォーカスを移動します (ただし、ボタンがラベル以外の UI 上の唯一のコンポーネントである場合はどうすればよいでしょうか?)
- 別のフォーカス不可能なコンポーネントをボタンとして実装します (マウス イベント、境界線を含むラベルなど) (これは私にはあまりエレガントに見えません)
- キーボード イベントに応答しないように、キーボード イベントをオーバーライドする匿名ボタンの実装を作成します (これはフォーカスの問題を解決しませんが、問題の根本は偶発的なキーボード クリックを回避することであるため、私にとってはある程度問題ありません。オプションがまったくない場合にのみこれを行いますが、それでもオプション 2 を優先します)