かなりの数JDialogsのJFileChoosersと を含む他のコンポーネントを含むプログラムがありJButtonsます。
JButtonからフォーカスを非表示JButtonに設定できることはわかって.focusPainted(false)いますが、問題は、「自動的に」作成されたコンポーネント (事前定義された JDialogs、JFileChoosers) がたくさんあり、それらの JButton にアクセスできないことです。サブコンポーネントを制御できるようにするには、コンポーネント全体を手動で作成する必要があります (そして、最初から fileChooser を作成するのは難しいはずです)...
しかし、私には考えがあります。JButton が作成されるたびに、デフォルトfocusPaintedで に設定さtrueれます。元の JButton コンストラクターを含む Java ライブラリを見つけて、メソッドをfalseそこにあるように変更し、それをデフォルトにする方法はありますか?
編集: src.zip を見つけて、AbstractButton.java を抽出しました。編集して再コンパイルするにはどうすればよいですか?
実際、問題は、Java 標準ライブラリをどのように編集するかということです。
PSそれは良い習慣ではないと言っている皆さん、この特定の例で何がうまくいかない可能性がありますか(JSLのすべては、フォーカスがJbuttonに描かれているかどうかに依存するとは思いません)?また、元のライブラリを使用するプロジェクトと編集済みのライブラリを使用するプロジェクトの 2 つのプロジェクトを同時に作業することもできます。 一方ではエラーが発生し、もう一方ではエラーが発生しない場合、どこに問題があるかがわかります。