使用Nimbus更改JProgressBar的颜色?

Has*_*boy 6 java swing colors jprogressbar nimbus

有没有人知道如何在使用Nimbus LookAndFeel时更改JProgressBar的颜色?

oli*_*olz 5

我已经覆盖了整个nimbusOrange-Default Value,它会更改所有ProgressBar-Colors和其他任何颜色nimbusOrange.(InternalFrame - 最小化按钮)
这里用nimbusBase(蓝色)

UIDefaults defaults = UIManager.getLookAndFeelDefaults();
defaults.put("nimbusOrange",defaults.get("nimbusBase"));
Run Code Online (Sandbox Code Playgroud)

更好的是编写一个自己的Painter并将其设置为UIManagervia

UIManager.put("ProgressBar[Enabled].backgroundPainter", myPainter);
Run Code Online (Sandbox Code Playgroud)

如果要仅为单个ProgressBar实例更改"颜色",则可以使用" 每个组件自定义"

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);
Run Code Online (Sandbox Code Playgroud)

  • 你能给一些"MyPainter"的示例代码吗? (2认同)