Не подсвечивать узлы после настройки иконок в JTree - PullRequest
0 голосов
/ 09 июня 2019

Я хотел изменить значки узлов для 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 для дерева, оно работает отлично, но как только я добавил, значки меняются, но этовыбранное выделение пропало.

...