4

Nimbus LAF(Look And Feel)の単一のJProgressBarの色を変更しようとしています。このソリューションは機能しますが、すべてのJProgressBarsの色が変わります:/

    UIDefaults defaults = UIManager.getLookAndFeelDefaults();
    defaults.put("nimbusOrange",defaults.get("nimbusBase"));

このスレッドには、各JProgressBarの色を個別に変更する別のソリューションがあります。

    progress = new JProgressBar();
    UIDefaults defaults = new UIDefaults();
    defaults.put("ProgressBar[Enabled].backgroundPainter", new MyPainter());
    progress.putClientProperty("Nimbus.Overrides.InheritDefaults", Boolean.TRUE);
    progress.putClientProperty("Nimbus.Overrides", defaults);

残念ながら、動作させることができません。「MyPainter()」のライブラリがどこにあるのかわかりません。そこで、このメソッドを(何をしているのかわからないまま)「defaults.get( "nimbusBase")」と「Color.red」に置き換えてみました。どちらも動作しませんでした。

4

1 に答える 1

4

1.どちらからのものか教えてください

UIManager.put("ProgressBar.background", Color.orange);
UIManager.put("ProgressBar.foreground", Color.blue);
UIManager.put("ProgressBar.selectionBackground", Color.red);
UIManager.put("ProgressBar.selectionForeground", Color.green);

UIDefaultsに有効な通知MetalLookAndFeel

2.次に、 Nimbus Defaultsで同等のものを検索してください

3.次に、 JProgressBar をロジックとこの Painter でオーバーライドしてみます

于 2012-06-01T09:07:41.190 に答える