如何设置字体的颜色?
问题描述:
我有一个JList,并在该列表中,我想改变下列单词的字体颜色。如何设置字体的颜色?
有人说我必须使用CellRenderer,但我还不熟悉这一点。
现在,我的问题是如何设置此渲染器来更改字体的颜色?
有关此事的任何想法?
谢谢...
答
退房的JavaDoc,它可能只是有你需要的(例子在顶部)。基本上你只是返回一个组件(如JLabel)与配置的字体颜色。
编辑:既然你想拥有的话用不同的颜色比自己的定义,这里有两个可能性,如何能与列单元格渲染来完成:
- 返回一个JPanel包含2周的JLabel,一个与词和一个与定义。这两个标签可以有不同的前景色。
- JLabel支持HTML(与其他Swing组件一样),因此您可以将标签的文本设置为
<html><font color=red>your word</font> - your definitions</html>
。请注意,默认的前景色应该是定义的前景色,或者您也可以使用<font>
标记包装定义。看看这个Tutorial。
答
对于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;
}
};
建议您随时打开http://download.oracle.com/javas e/tutorial/uiswing/index.html - 并快速阅读如何使用的xx章节(使用xx作为您还不知道的组件:-) – kleopatra
是否可以在一个JLabel中创建两种不同的颜色清单? – sack
我在我的Jlist中有一个单词列表,旁边的每个单词都是它们的定义。我希望单词的字体与他们的定义有不同的颜色。我的问题是,是否有可能在一个Jlist中有两种不同的颜色? – sack