Иконка в JTree в режиме редактирования
От: aliks-os  
Дата: 23.06.09 07:52
Оценка:
Написал ренедерер для JTree, чтобы отображать иконки в зависимости от условий

    private class MyObjRenderer extends DefaultTreeCellRenderer {
        @Override
        public Component getTreeCellRendererComponent(
                            JTree tree,
                            Object value,
                            boolean sel,
                            boolean expanded,
                            boolean leaf,
                            int row,
                            boolean hasFocus) {

            super.getTreeCellRendererComponent(
                            tree, value, sel,
                            expanded, leaf, row,
                            hasFocus);
            DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
            NodeInfo nodeInfo = (NodeInfo)node.getUserObject();
            ImageIcon icon = null;
            if (nodeInfo.fld_id == 0) {
                icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-1.png"));
            }
            switch (nodeInfo.type) {
                case 0:    {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-2.png"));
                    break;
                }
                case 1001: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-4.png"));
                    break;
                }
                case 1002: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-5.png"));
                    break;
                }
                case 1003: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/900-4.png"));
                    break;
                }
                case 1004: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-3.png"));
                    break;
                }
                case 1005: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-6.png"));
                    break;
                }
                case 1006: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-7.png"));
                    break;
                }
                case 1007: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-8.png"));
                    break;
                }
                case 1008: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-9.png"));
                    break;
                }
                case 1009: {
                    icon  = new javax.swing.ImageIcon(getClass().getResource("/db/resources/883-10.png"));
                    break;
                }
            }

            if (icon!=null) setIcon(icon);
            setToolTipText(value.toString());
            return this;
        }
    }


Все работает ОК. Однако, когда я редактирую ветку или лист, то в режиме редактирования, показывается стандартная иконка.
Как можно сделать, чтобы при редактировании также отображалась та иконка, которая мне необходима
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.