如何设置字体的颜色?

问题描述:

我有一个JList,并在该列表中,我想改变下列单词的字体颜色。如何设置字体的颜色?

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

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

有关此事的任何想法?

谢谢...

+2

建议您随时打开http://download.oracle.com/javas e/tutorial/uiswing/index.html - 并快速阅读如何使用的xx章节(使用xx作为您还不知道的组件:-) – kleopatra

+0

是否可以在一个JLabel中创建两种不同的颜色清单? – sack

+0

我在我的Jlist中有一个单词列表,旁边的每个单词都是它们的定义。我希望单词的字体与他们的定义有不同的颜色。我的问题是,是否有可能在一个Jlist中有两种不同的颜色? – sack

退房的JavaDoc,它可能只是有你需要的(例子在顶部)。基本上你只是返回一个组件(如JLabel)与配置的字体颜色。

编辑:既然你想拥有的话用不同的颜色比自己的定义,这里有两个可能性,如何能与列单元格渲染来完成:

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

我在我的Jlist中有单词列表,旁边的每个单词都是它们的定义。我希望单词的字体与他们的定义有不同的颜色。我的问题是,是否有可能在一个Jlist中有两种不同的颜色? – sack

+1

@Mikel是的,这是可能的。我会添加两种可能性。 – Thomas

+0

是的..它的工作..谢谢.. ;-) – sack

对于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; 
     } 
    }; 
+0

它的工作原理,谢谢! – sack

+0

我在我的Jlist中有单词列表,旁边的每个单词都是他们的定义。我希望单词的字体与他们的定义有不同的颜色。我的问题是,是否有可能在一个Jlist中有两种不同的颜色? – sack

考虑......,这将更好地利用与JTable一个TableColumn并没有TableHeaderJList,证明herehere,通过使用prepareRenderer是,因为JList有很多限制/错过的方法,因为JTable

+1

- 1为过度复杂化;-)这个问题很明显是关于JList和配置它的单元格外观的方法是..好...自定义渲染器的实现。 – kleopatra

+0

我很享受只是@Andrew Thompson从你那里得到它,今天:-) – mKorbel