Я хотел изменить значки узлов для JTree
, поэтому я сделал это:
public class MyTreeCellRenderer implements TreeCellRenderer {
private JLabel label;
MyTreeCellRenderer() {
label = new JLabel();
}
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
Object o = ((DefaultMutableTreeNode) value).getUserObject();
if (o instanceof Node) {
Node country = (Node) o;
if (country.getImg() != null) {
BufferedImage img = resizeImage(country.getImg()); // gives me an iconDimensions image
label.setIcon(new ImageIcon(img));
}
else {
label.setIcon(null);
}
}
return label;
}
Право после добавления рендерера в дерево с помощью:
jTree.setCellRenderer(new MyTreeCellRenderer());
Iизменил иконку каждого узла на свое собственное изображение, я имею в виду, что это сработало.
Но теперь, когда я нажимаю на любой из узлов дерева, они не выделяются.Я не понимаю почему, я никогда не менял jTree selectedModel
.
Если я не установил MyTreeCellRenderer
для дерева, оно работает отлично, но как только я добавил, значки меняются, но этовыбранное выделение пропало.