Java列表集列表项的背景

时间:2010-07-17 02:46:22

标签: java list applet awt

如何更改Java AWT List项目的背景颜色?我指的是AWT列表中的单个项目,而不是整个项目。

3 个答案:

答案 0 :(得分:5)

您需要自定义渲染器。也就是说,如果你使用的是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.
  }
}

答案 1 :(得分:0)

由于Java AWT List继承自Component,因此请使用Component的setBackground(Color c)方法。

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

列表现在有一个绿色。

答案 2 :(得分:-1)

自从我使用AWT以来已经有一段时间了,但你不能只使用setBackground(Color)吗? List是java.awt.Component的子类。