Java List set Фон элемента списка - PullRequest
0 голосов
/ 17 июля 2010

Как изменить цвет фона элемента списка Java AWT?Под этим я подразумеваю один элемент в списке AWT, а не все.

Ответы [ 3 ]

5 голосов
/ 17 июля 2010

Вам понадобится пользовательский рендер. То есть, если вы используете Swing. Лучше придерживаться компонентов Swing, а не компонентов awt gui.

JList
...
setCellRenderer(new MyCellRenderer());
...
class MyCellRenderer extends DefaultListCellRenderer
{
  public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
  {
    super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
    Color bg = <calculated color based on value>;
    setBackground(bg);
    setOpaque(true); // otherwise, it's transparent
    return this;  // DefaultListCellRenderer derived from JLabel, DefaultListCellRenderer.getListCellRendererComponent returns this as well.
  }
}
0 голосов
/ 17 июля 2010

Прошло немного времени с тех пор, как я работал с AWT, но вы не можете просто использовать setBackground (Color)?Список является подклассом java.awt.Component.

0 голосов
/ 17 июля 2010

Поскольку Java AWT List наследуется от Component, используйте метод SetBackground (Color c) компонента.

List coloredList = new List(4, false);
Color c = new Color(Color.green);
coloredList.add("Hello World")
coloredList.setBackground(c);

Список теперь имеет зеленый цвет.

...