У меня есть JTree, в котором я отображаю различные значки в соответствии с глубиной узлов в дереве, что я сделал, используя следующий код:
public Component getTreeCellRendererComponent(JTree tree,
Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus){
super.getTreeCellRendererComponent(tree, value,
selected, expanded, leaf, row, hasFocus);
int level = ((DefaultMutableTreeNode) value).getLevel());
JLabel label = (JLabel) this ;
if(level == 0) {
label.setIcon( new ImageIcon("icon1.gif") ) ;
}else if(level == 1) {
label.setIcon( new ImageIcon("icon2.png") ) ;
}
return this;
}
Это работает так, как я ожидал, за исключением того, чтоесли компонент JTree отключен, значки возвращаются к (отключенным) версиям по умолчанию.Нужно ли создавать отключенные версии моих значков, и если да, то как они устанавливаются с помощью этого метода.Я попытался добавить:
if(!tree.isEnabled()) {
label.setIcon( new ImageIcon("icon1_disabled.gif") ) ;
}
... но я все еще остаюсь с настройками по умолчанию в отключенном компоненте.Будем благодарны за любые подсказки в правильном направлении.