У меня есть пользовательский listcellRenderer и хотел бы использовать цвет выбора выбора Nimbus по умолчанию. Я могу найти цвет с:
Color selectionBackground = UIManager.getColor("nimbusSelectionBackground");
и если Я печатаю его, он имеет одинаковые значения, что и на цвета по умолчанию . Но когда я использую его на jpanel, я получаю другой серый цвет, как я могу использовать цвет от Uimanager?
, когда я Делать:
setBackground(Color.RED);
Backround JPanels отображается красным, но когда я делаю:
setBackground(selectionBackground);
Цвет «Выбор списка» используется, но серый цвет.
Вот пример и скриншот :
Фон должен быть:
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);
}
}