2

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

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

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

对这件事有任何想法吗?

谢谢...

4

3 回答 3

6

查看JavaDoc,它可能正好有您需要的内容(顶部的示例)。基本上,您只需返回一个具有已配置字体颜色的组件(如 JLabel)。

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

  1. 返回一个 JPanel,其中包含 2 个 JLabel,一个带有单词,一个带有定义。两个标签可以有不同的前景色。
  2. JLabel 支持 HTML(与其他 Swing 组件一样),因此您可以将标签的文本设置为<html><font color=red>your word</font> - your definitions</html>. 请注意,默认前景色应该是定义的颜色,或者您也可以使用<font>标签包装定义。看看这个教程
于 2011-09-07T09:18:48.837 回答
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;
        }  
    };
于 2011-09-07T09:25:09.890 回答
2

考虑......,最好使用JTable带有一个TableColumn和不带TableHeader的a ,在这里JList演示,在这里,通过使用prepareRenderer,因为JList有很多限制/遗漏的方法作为JTable

于 2011-09-07T09:50:13.240 回答