Java列表集列表项的背景

tes*_*est 0 java applet list awt

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

Mik*_*ike 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.
  }
}
Run Code Online (Sandbox Code Playgroud)