私は現在、JInternalFrame を使用して JDesktopPane の 1 つのインスタンスで複数の小さなウィンドウを開く GUI を多用するアプリケーションに取り組んでおり、Nimbus ルック アンド フィールの外観をパーソナライズしようとしています。プライマリ カラーとセカンダリ カラーは簡単に変更できますが、個々のコンポーネントを変更しようとすると問題が発生します。現在の原因は JLabel テキストです。
これは、LnF の設定とカスタマイズの両方に使用している方法です。
(コードブロックをぼろぼろにする場合は事前にお詫びします)
protected static void GUIStyle() throws Exception
{
//Setting GUI styling
UIManager.put("nimbusBase", new Color(255, 128, 0));
UIManager.put("control", new Color(65, 105, 255));
//UIManager.put("textForeground", Color.WHITE);
try
{
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels())
{
if ("Nimbus".equals(info.getName()))
{
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}
catch (Exception e)
{
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
}
UIManager.getLookAndFeelDefaults().put("MenuItem[Enabled].textForeground", Color.WHITE);
UIManager.getLookAndFeelDefaults().put("MenuBar:Menu[Enabled].textForeground", Color.WHITE);
}
現在、アプリケーション内のすべての JLabel のテキストを白くしようとしていますが、この便利なリストを使用しても、それを行う特定のコンポーネントを突き止めることができないようです。
追加
してもうまくいきUIManager.getLookAndFeelDefaults().put("InternalFrame.foreground", Color.WHITE);
ませんでした。
どちらもしなかった
UIManager.getLookAndFeelDefaults().put("Label.foreground", Color.WHITE);
私は困惑しています。UIManager.put("text", Color.WHITE);
ルック アンド フィールを設定する前に追加することで、すべてのテキストを白に変更できるため、明らかに実行可能
です。しかし、状況を考えると、すべてのテキストではなく、JLabel テキストだけを白くする必要があります。
前もって感謝します。私がこれに問題を抱えている正確な理由を説明していただければ (または、理由を説明する適切なリソースを教えてください)、ぜひご覧ください。他のコンポーネントでも同様の問題を抱えていますが、この問題の根底にたどり着くことができれば、他のコンポーネントを理解できることを願っています.