0

Nimbus でカスタム カラーを使用しています。JFileChooser何時間も検索した後、背景色と前景色を適切に設定する方法がわかりません。

私の(動作していない)コード:

UIManager.getLookAndFeelDefaults().put("FileChooser.background", Color.DARK_GRAY);  
UIManager.getLookAndFeelDefaults().put("FileChooser.textForeground", Color.white);  
UIManager.getLookAndFeelDefaults().put("FileChooser.foreground", Color.white);  
UIManager.getLookAndFeelDefaults().put("Label.foreground", Color.white);  

Oracle Nimbus のデフォルトによると、これは機能するはずですが、機能しません。また、他のどこにも答えが見つかりませんでした。

変えたいこと

Labels: (Look In:、Folder Name: Files of Type) を白で表示し、明るい灰色の境界線を濃い灰色で表示したいと考えています。

前もって感謝します :)

更新: 迂回していくつかのテキストの色を修正できます:

UIManager.getLookAndFeelDefaults().put("textForeground", Color.white);
UIManager.getLookAndFeelDefaults().put("Menu.textForeground", Color.white);
UIManager.getLookAndFeelDefaults().put("ToolTip.textForeground", Color.BLACK);
UIManager.getLookAndFeelDefaults().put("List.textForeground", Color.BLACK);
UIManager.getLookAndFeelDefaults().put("TextField.foreground", Color.BLACK);
UIManager.getLookAndFeelDefaults().put("TextArea.foreground", Color.BLACK);
UIManager.getLookAndFeelDefaults().put("EditorPane.foreground", Color.BLACK);

ただし、フレームの背景はJFileChooser引き続きライト グレーのままです (他のすべてのフレーム/ダイアログおよびメッセージ ダイアログは、設定された背景色のダーク グレーを優先します)。

私が今気づいたもう 1 つの奇妙な点は次のとおりです。popupmenu は背景色を尊重しますJMenuItemが、前景を無視します。私が何を意味するかを説明するために、「通常の」ポップアップメニューと内部に表示されるポップアップメニューを比較する新しいIMAGEJFileChooserをアップロードしました。

4

4 に答える 4

4

JFileChooser の背景色の変更に関して、同じ問題がありました。

私の解決策 - 新しいペインター。あなたの目的にも役立つと思います。Constants.APP_BACKGROUND_COLOR は望ましい背景色です。コードサンプルは次のとおりです。

UIManager.getLookAndFeelDefaults().put("FileChooser.background", Constants.APP_BACKGROUND_COLOR);

UIManager.getLookAndFeelDefaults().put("FileChooser[Enabled].backgroundPainter",
                    new Painter<JFileChooser>()
                    {
                        @Override
                        public void paint(Graphics2D g, JFileChooser object, int width, int height)
                        {
                            g.setColor(Constants.APP_BACKGROUND_COLOR);
                            g.draw(object.getBounds());

                        }
                    });
于 2013-06-15T08:27:09.590 に答える
1

http://docs.oracle.com/javase/7/docs/api/javax/swing/plaf/nimbus/NimbusStyle.htmlを参照して、Nimbus 配色のオーバーライドに関する有用な情報を確認してください。

以下のコードを使用して、以前に jProgesssBar の Nimbus 配色を変更することができました。jFileChooser で機能するように少し調整しました。これがうまくいくことを願っています!

    UIDefaults defaults = new UIDefaults();
    defaults.put("FileChooser.background", Color.DARK_GRAY);
    defaults.put("FileChooser.textForeground", Color.white);

    yourJFileChooser.putClientProperty("Nimbus.Overrides.InheritDefaults", Boolean.TRUE);
    yourJFileChooser.putClientProperty("Nimbus.Overrides", defaults);
于 2013-05-02T09:54:54.813 に答える
0

Nimbus ルック アンド フィール UI のデフォルトには、まだ修正されていない多くのバグがあります。背景のグラデーションのように機能するものJProgressBarJButton機能しないものがあります。私も同じことを設定しようとしました。これらのデフォルトを使用する代わりに独自のコードを作成するか、これらのバグを修正する更新を待つことをお勧めします。

メソッドをJFileChooser使用するためのコンポーネントを取得してから、実行してください。getComponents()

于 2013-07-13T19:24:19.493 に答える
0

他のコンポーネントの作業で忙しかったため、返信が遅くなってしまったことをお詫びします。

アプリ全体で一貫した、自分のアプリケーション用の暗いテーマが必要でした。私のために働いた私の解決策は単純でした:

Nimbus のデフォルトの色を設定します。

UIManager.put("nimbusBase", Color.DARK_GRAY);

これにより、JFilechooser 内のメニューでトリックが実行されました。また、JTabbed ペインなどの問題も修正されます。

あとは、テキストがダーク グレーで黒くなっていたので修正するだけでした。

于 2013-07-15T09:46:11.377 に答える