我有一个JList并在该列表中,我想更改以下单词的字体颜色。
有人说我必须使用CellRenderer,但我还不熟悉。
现在,我的问题是如何设置此渲染器以更改字体的颜色?
对此事有任何想法吗?
...谢谢
答案 0 :(得分:6)
查看JavaDoc,它可能只是你需要的东西(顶部的例子)。基本上,您只需返回一个具有已配置字体颜色的组件(如JLabel)。
编辑:由于您希望使用与其定义不同的颜色,这里有两种可能性如何使用列表单元格渲染器:
<html><font color=red>your word</font> - your definitions</html>
。请注意,默认前景颜色应该是定义的前景颜色,或者您也可以使用<font>
标记包装定义。看看这个Tutorial。答案 1 :(得分:6)
对于JLabel
组件,请尝试:
new DefaultListCellRenderer(){
@Override
public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus ) {
JLabel label = (JLabel)super.getListCellRendererComponent( list, value, index, isSelected, cellHasFocus );
label.setForeground( Color.RED );
return label;
}
};
答案 2 :(得分:2)
考虑....,使用JTable
一个TableColumn
而不TableHeader
作为JList
会更好,展示here,{ {3}},使用here,因为prepareRenderer有很多限制/遗漏方法JList