これは、すでに投稿されている多くの質問のように聞こえると思いますが、読み進めてください。これには一見同様の問題がありますが、すでに提供されている多くのソリューションでは機能しませんでした。
私は現在、OS X と Windows の両方で Eclipse を使用して Java で書いています。OS X では、.setEnabled(true) から .setEnabled(false) になる JButton があります。これが発生すると、無効になるため、.setBackground(someColor) を介して背景色を変更します。これが発生している間ずっと、前景 (フォント) の色は変化せず、黒のままです。これは私が欲しいものです。このままで完璧です。
次に、Windows の問題が発生します。上記と同じように、.setEnabled(true) から .setEnabled(false) になる JButton があります。また、.setBackground(someColor) を使用して背景を変更します。ただし、これが発生すると、前景色 (フォント) の色は一定に保たれず、黒から薄い灰色に変わります。これは非常に不便で、新しい背景色では非常に読みにくくなります。
問題は、無効になっている JButton の前景色を変更するにはどうすればよいかということです。
私はすでに次のことを試しました:
button.setForeground(Color.BLACK);
button.setText(<html><font color = black>BUTTON</font></html>);
UIManager.put("Button.disabledText", Color.BLACK);
UIManager.getDefaults().put("Button.disabledText", Color.BLACK);
UIManager.put("Button.foreground", Color.BLACK);
UIManager.getDefaults().put("Button.foreground", Color.BLACK);
どれもうまくいきませんでした。また、次のことも試しました。
- OS X を .jar ファイルにエクスポートし、それを Windows で使用します。Windows のフォントの色は変わりません。
- OS X 用の .app ファイルと Windows 用の .exe ファイルをコンパイルします。問題はまだ残っています。
私が見落とした他の解決策はありますか?
現時点では、フォントを現在の見苦しい灰色のままにして、背景を変更することに頼っています (何らかの理由で、.setBackground() を介して簡単に変更できます)。それに対応できる他の色に変更します。
では、なぜ OS X と Windows でこのような色の違いがあるように見えるのでしょうか? 私は OS X の配色を好みますが、本質的に同じプログラムに対して 2 セットのコードを使用したくはありません。
私は何をすべきか?