Как использовать цвет Nimbus по умолчанию с Uimanager?

У меня есть пользовательский listcellRenderer и хотел бы использовать цвет выбора выбора Nimbus по умолчанию. Я могу найти цвет с:

Color selectionBackground = UIManager.getColor("nimbusSelectionBackground");

и если Я печатаю его, он имеет одинаковые значения, что и на цвета по умолчанию . Но когда я использую его на jpanel, я получаю другой серый цвет, как я могу использовать цвет от Uimanager?

, когда я Делать:

setBackground(Color.RED);

Backround JPanels отображается красным, но когда я делаю:

setBackground(selectionBackground);

Цвет «Выбор списка» используется, но серый цвет.


Вот пример и скриншот :

enter image description here

Фон должен быть:

enter image description here

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;

public class PanelColor {

    public static void main(String[] args) {

        // switch to Nimbus Look And Feel
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                try {
                    UIManager.setLookAndFeel(info.getClassName());
                } catch (Exception e) { e.printStackTrace(); }
                break;
            }
        }

        Color selectionBackground = UIManager.getColor("nimbusSelectionBackground");

        JPanel panel = new JPanel(new BorderLayout());
        panel.setPreferredSize(new Dimension(300,50));
        panel.add(new JLabel(selectionBackground.toString()), BorderLayout.NORTH);

        // is not showing the selectionBackground color
        panel.setBackground(selectionBackground);

        JFrame frame = new JFrame();
        frame.add(panel);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

5
задан Jonas 8 September 2011 в 19:48
поделиться