我想写一个自定义的ListCellRenderer。
只有与默认值不同的是它不会显示value.toString()
的返回值,而是显示value.myOwnCustomMethodThatReturnsString()
的eturn值。
最简单的方法是什么?
这个类已经实现了ListCellRenderer,我有:
public Component getListCellRendererComponent(JList<? extends Chapter> list,
Chapter value, int index, boolean isSelected, boolean cellHasFocus)
{
return null;
}
我只是不知道括号之间放什么......
答案 0 :(得分:2)
最简单的方法是:
public class MyRenderer extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList<? extends Chapter> list, Chapter value, int index, boolean isSelected, boolean cellHasFocus)
{
Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (c instanceof Jlabel) { // it would work because DefaultListCellRenderer usually returns instance of JLabel
((JLabel)c).setText(value.myOwnCustomMethodThatReturnsString());
}
return c;
}
}