Я пытаюсь найти цвет, используемый ячейками, которые не выбраны. Обычно это белый цвет, однако, когда я вызываю UIManager.getColor («List.background»), он выглядит так же, как серый цвет, используемый для JPanels. Когда я вызываю новый JList (). GetBackground (), я получаю тот же самый ужасный серый цвет, но когда я фактически использую список, он белый. Как мне получить этот белый цвет из JList или UIManager? То, что я сейчас делаю, чтобы найти цвет фона, это:
String[] contents = {"Foo", "Bar"};
JList list = new JList(contents);
// Prints true
System.out.println(list.getBackground().equals(new Color(237, 236, 235)));
Поскольку List.selectionBackground дает мне синий цвет, который я ожидаю увидеть при нажатии на ячейку, я подумал, что List.background даст мне цвет невыбранной ячейки. Что на самом деле List.background возвращает значение для тогда?
В соответствующем примечании, есть ли где-нибудь список того, что означают эти ключи? Я нашел связанный вопрос , но ни один из ответов не содержит описания ключей.
РЕДАКТИРОВАТЬ: Кажется, это правильный способ сделать это. Однако, по крайней мере, в GNOME проблема возникает при вызове setLookAndFeel.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
String[] contents = {"Foo", "Bar"};
JList list = new JList(contents);
// Prints true
System.out.println(list.getBackground().equals(new Color(237, 236, 235)));
// Add list to a pane and display it, and it will actually be white
Похоже, это может быть ошибкой, извините, ребята.