java如何设置字体的颜色? 2 年,4 月 Questions & Answers 2388 我有一个JList,在该列表中,我想更改以下单词的字体颜色 有人说我必须使用CellRenderer,但我还不熟悉 现在,我的问题是如何设置这个渲染器来更改字体的颜色 你知道这件事吗 谢谢
# 1 楼答案 查看JavaDoc,它可能正好满足您的需要(顶部的示例)。基本上,您只需返回一个配置了字体颜色的组件(比如JLabel) 编辑:由于您希望单词的颜色与其定义不同,因此有两种可能的方法可以使用列表单元格渲染器来实现: 返回一个包含2个jLabel的JPanel,一个包含单词,一个包含定义。两个标签可以有不同的前景色李> JLabel支持HTML(就像其他Swing组件一样),因此您可以将标签的文本设置为<html><font color=red>your word</font> - your definitions</html>。请注意,默认的前景色应该是定义的前景色,或者您也可以用<font>标记包装定义。看看这个Tutorial李>
# 2 楼答案 考虑……这将更好地使用JTable和一个TableColumn以及没有TableHeader作为JList,通过使用prepareRenderer来演示here,here,因为JList和JTable一样有很多限制/遗漏的方法
# 3 楼答案 对于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; } };
# 1 楼答案
查看JavaDoc,它可能正好满足您的需要(顶部的示例)。基本上,您只需返回一个配置了字体颜色的组件(比如JLabel)
编辑:由于您希望单词的颜色与其定义不同,因此有两种可能的方法可以使用列表单元格渲染器来实现:
<html><font color=red>your word</font> - your definitions</html>
。请注意,默认的前景色应该是定义的前景色,或者您也可以用<font>
标记包装定义。看看这个Tutorial李># 2 楼答案
JTable
和一个TableColumn
以及没有TableHeader
作为JList
,通过使用prepareRenderer来演示here,here,因为JList和JTable一样有很多限制/遗漏的方法# 3 楼答案
对于
JLabel
组件,请尝试: