我在這裏一個新手剛剛加入這個完美的事情,社區。我不得不承認,這是編程問題和答案的最佳網站。現在讓我切入正題:JList的每一行可能需要有不同的字體顏色
我試圖創建在那裏我可以輸入線用不同的字體顏色從ColorChooser採取一個JList。我有如下
感謝您事先的任何答案中描述試過的東西了。 最好的問候, DWC
這裏是我的示例代碼:
class CustomObject
{
String s;
Color color;
String scolor;
public CustomObject(Color color, String s)
{
this.s = s;
this.color = color;
}
public String getColor()
{
return scolor = Integer.toString(color.getRGB());
}
public String getData()
{
return s;
}
@Override
public String toString()
{
return s + color.getRGB();
}
}
class myListRenderer extends DefaultListCellRenderer
{
Color color;
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value != null)
{
CustomObject o = (CustomObject)value;
setText(o.getData());
color = new Color(Integer.parseInt(o.getColor()));
setForeground(color);
}
return this;
}
}
我的主要問題是,我得到一個錯誤:在該行
java.lang.ClassCastException: java.lang.String cannot be cast to app.CustomObject
:
CustomObject o = (CustomObject)value;
可能DUP:http://stackoverflow.com/questions/1076473/how-to-generate-a-jlist-with-alternating-colors – Xorty 2010-06-22 12:20:29
我已經檢查過該解決方案,但我不確定如何實際手動給出我想要在每種情況下使用的顏色,與此例不同。 – kxk 2010-06-22 12:36:03
這不是一個SSCCE。我該如何編譯?你在哪裏構建CustomObject並將其添加到模型中?你有沒有看到我在下面的鏈接中提供給你的SSCCE?另外爲什麼getColor方法返回一個String,setForeground()方法需要一個Color對象。既然你傳遞了一個Color對象,爲什麼你要將它轉換爲String/Color? – camickr 2010-06-23 16:30:39