4

我正在尝试更改 Nimbus LAF(外观)中单个 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);

通知有效期UIDefaultsMetalLookAndFeel,

2.然后请在Nimbus Defaults中搜索等效项

3.then 尝试用逻辑和这个 Painter 覆盖 JProgressBar

于 2012-06-01T09:07:41.190 回答