0

我想编写一个自定义 ListCellRenderer。

唯一需要与默认值不同的是,它不显示 的返回值value.toString(),而是显示 的返回值value.myOwnCustomMethodThatReturnsString()

最简单的方法是什么?

所有这些所在的类已经实现了 ListCellRenderer,我有:

public Component getListCellRendererComponent(JList<? extends Chapter> list,
        Chapter value, int index, boolean isSelected, boolean cellHasFocus)
{
    return null;
}

我只是不知道在括号之间放什么...

4

1 回答 1

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;
    }
}
于 2013-09-19T13:48:11.880 回答