如何设置字体的颜色?
我有一个JList并在该列表中,我想更改以下单词的字体颜色。
有人说我必须使用CellRenderer,但我还不熟悉。
现在,我的问题是如何设置此渲染器来更改字体的颜色?
对此事有何看法?
谢谢…
查看JavaDoc ,它可能只是你需要的东西(顶部的例子)。 基本上,您只需返回具有已配置字体颜色的组件(如JLabel)。
编辑:由于您希望使用与其定义不同的颜色,这里有两种可能性,如何使用列表单元格渲染器:
- 返回包含2个JLabel的JPanel,其中一个包含单词,另一个包含定义。 两个标签可以具有不同的前景色。
- JLabel支持HTML(与其他Swing组件一样),因此您可以将标签的文本设置为
your word - your definitions
。 请注意,默认前景颜色应该是定义的前景颜色,或者您也可以使用标记包装定义。 看看这个教程 。
对于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; } };
考虑….,使用带有一个TableColumn
且没有TableHeader
作为JList
的JTable
会更好, 这里通过使用prepareRenderer演示 ,因为JList有很多限制/遗漏方法作为JTable