如何设置字体的颜色?

pap*_*ski 2 java swing jlist listcellrenderer

我有一个JList并在该列表中,我想更改以下单词的字体颜色.

有人说我必须使用CellRenderer,但我还不熟悉.

现在,我的问题是如何设置此渲染器来更改字体的颜色?

对此事有何想法?

谢谢...

Tho*_*mas 6

查看JavaDoc,它可能只是你需要的东西(顶部的例子).基本上,您只需返回具有已配置字体颜色的组件(如JLabel).

编辑:由于您希望使用与其定义不同的颜色,这里有两种可能性如何使用列表单元格渲染器:

  1. 返回一个包含2个JLabel的JPanel,一个带有单词,另一个带有定义.两种标签都可以有不同的前景色.
  2. JLabel支持HTML(与其他Swing组件一样),因此您可以将标签的文本设置为<html><font color=red>your word</font> - your definitions</html>.请注意,默认前景颜色应该是定义的前景颜色,或者您也可以使用<font>标记包装定义.看看这个教程.


oli*_*olz 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;
        }  
    };
Run Code Online (Sandbox Code Playgroud)