свой TreeCellRenderer и L&F
От: VaGon Россия  
Дата: 18.10.05 03:42
Оценка:
Столкнулся с забавной проблеммой.
Некая структура данных отображается с помощью JTree, так как у элементов структуры есть несколько фикрисованных состояний, то был реализован свой класс
public class StateRenderer extends DefaultTreeCellRenderer {
    Icon[] stateIcon= new Icon[7];
    public StateRenderer(Icon[] icons){
        stateIcon=icons;
    }
    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);

        setIcon(stateIcon[getStateIndex(value)]);
        return this;
    }

    private int getStateIndex(Object value){
       // собственно тут определяем состояние
       return ((StateFileTreeNode)value).getState();
    }
 }

класс StateFileTreeNode наследует DefaultMutableTreeNode.
собственно проблема возникает при смене LookAndFeel, ноды JTree просто напросто не перерисовываются и остаются в первоначальном виде.
Re: свой TreeCellRenderer и L&F
От: Blazkowicz Россия  
Дата: 18.10.05 08:32
Оценка:
Здравствуйте, VaGon, Вы писали:

VG>Столкнулся с забавной проблеммой.

VG>Некая структура данных отображается с помощью JTree, так как у элементов структуры есть несколько фикрисованных состояний, то был реализован свой класс

VG>собственно проблема возникает при смене LookAndFeel, ноды JTree просто напросто не перерисовываются и остаются в первоначальном виде.


http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4465529

Можно попробовать пересоздать CellRenderer.
Re: свой TreeCellRenderer и L&F
От: Blazkowicz Россия  
Дата: 18.10.05 08:37
Оценка:
Здравствуйте, VaGon, Вы писали:

VG>Столкнулся с забавной проблеммой.

VG>Некая структура данных отображается с помощью JTree, так как у элементов структуры есть несколько фикрисованных состояний, то был реализован свой класс

VG>класс StateFileTreeNode наследует DefaultMutableTreeNode.

VG>собственно проблема возникает при смене LookAndFeel, ноды JTree просто напросто не перерисовываются и остаются в первоначальном виде.

Ну и понятное дело не ты первый, не ты последний:

http://forum.java.sun.com/thread.jspa?threadID=395327&start=0&tstart=0
Re[2]: свой TreeCellRenderer и L&F
От: VaGon Россия  
Дата: 18.10.05 08:58
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Ну и понятное дело не ты первый, не ты последний:

B>http://forum.java.sun.com/thread.jspa?threadID=395327&start=0&tstart=0
спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.