如何更改Java AWT List项目的背景颜色?我指的是AWT列表中的单个项目,而不是整个项目。
答案 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的子类。