Цвет фона в Застекленном Листе и Нимбе - PullRequest
1 голос
/ 28 октября 2011

Я использую функцию автозаполнения для комбинированных списков из глазурованных списков. Это довольно полезно. Я также использую нибус L & F. Но он игнорирует JCombobox.setBackground (Color). Есть ли способ заставить фоновый цвет быть красным, например, с помощью нимба?

Examplecode:

SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
    final JFrame frame = new JFrame();
    JComboBox cbox = new JComboBox();
    String[] strs = {"Nowarro", "Klamat", "Den", "NKR"};
    try {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
    } catch (Throwable e1) {
        e1.printStackTrace();
    }
    AutoCompleteSupport.install(cbox, GlazedLists.eventList(Arrays.asList(strs)));
    cbox.setBackground(Color.RED); // NO EFFECT!!!
    frame.getContentPane().add(cbox);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

}

Ответы [ 2 ]

3 голосов
/ 28 октября 2011
Color color = UIManager.getColor
      ("ComboBox:\"ComboBox.renderer\"[Selected].background");

для Nimbus Вы должны переопределить Nimbus UI по умолчанию больше здесь

1 голос
/ 28 октября 2011

ComboBox составлены из нескольких компонентов. Вам необходимо установить цвет фона для фактического компонента редактора в поле со списком:

cbox.getEditor().getEditorComponent().setBackground(Color.red);
...