Java SwingX JXTreeTableCellRenderer弄乱了我的桌子

Java SwingX JXTreeTableCellRenderer弄乱了我的桌子,java,swing,swingx,treetable,Java,Swing,Swingx,Treetable,这是我的手机渲染器类 public class MyCellRenderer extends DefaultTreeCellRenderer{ ImageIcon parentbill = new ImageIcon("images/parentbill.png"); ImageIcon childbill = new ImageIcon("images/childbill.png"); ImageIcon parentPurchase = new Imag

这是我的手机渲染器类

    public class MyCellRenderer extends DefaultTreeCellRenderer{

    ImageIcon parentbill = new ImageIcon("images/parentbill.png");

    ImageIcon childbill = new ImageIcon("images/childbill.png");

    ImageIcon parentPurchase = new ImageIcon("images/parentexpense.png");

    ImageIcon childPurchase = new ImageIcon("images/childexpense.png");

    public MyCellRenderer(TreeTableController contr){
        super();
    }
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
            Component c = super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
           if(leaf){

                setIcon(childPurchase);
                //((DefaultTreeCellRenderer) c).setClosedIcon(parentPurchase);
            }else{
                setIcon(parentPurchase);    
            }

            if(expanded){
                setIcon(parentPurchase);
            }

            return c;
        }
}
我是这样加上去的:

    TableModel tableModel = new TableModel(root);
    JXTreeTable treeTable = new JXTreeTable(tableModel);
    treeController = new TreeTableController(tableModel, treeTable);

    MyCellRenderer cellRenderer = new MyCellRenderer(treeController);
    treeController.getTable().setTreeCellRenderer(cellRenderer);
因此,我的渲染器应该更改表中不同类型行的图标。 而且,他做到了哇!。但他首先搞乱了表的外观,他在第一个单元格中放入了一些java垃圾,如下所示:
我怎样才能修好它?我知道,有一种方法可以在不使用渲染器的情况下从JXTreeTable设置图标,但是我想根据行的类型添加一些条件,所以我必须重写它

“描述”节点中存储了什么?渲染器正在为节点的文本使用value对象的toString方法。我正在存储字符串Purchase或Bill看起来您正在存储一个值数组,或者至少正在为给定的列返回一个数组。这很奇怪,我没有在描述中存储值数组。但是每一行本身都是一个值数组,所以也许DeNeer-DeNST知道把它放在哪里?考虑提供一个演示你的问题的方法。这不是一个代码转储,而是您正在做的一个示例,它突出了您所遇到的问题。这将减少混乱和更好的响应