JTREE: Выбор всех узлов программно

У меня есть JTREE, и 2 кнопки для выбора и отключения всех узлов. Я сделал попытку, подобную этой:

selectAll = new JButton("Select all");
selectAll.addActionListener(new ActionListener (){
        @Override
        public void actionPerformed(ActionEvent e) {
                int row = 0;
                while (row < curvesTree.getRowCount())
                {
                    curvesTree.expandRow(row);
                    row++;
                }
            int entradasTree = curvesTree.getRowCount();
            for(int i=0; i<entradasTree; i++){
                TreePath path = curvesTree.getPathForRow(i);
                curvesTree.setSelectionPath(path);
            }
        }
    });

        unselectAll = new JButton("Unselect all");
        unselectAll.addActionListener(new ActionListener (){
            @Override
            public void actionPerformed(ActionEvent e) {
                curvesTree.clearSelection();
            }
        });

Кнопка «Ненадожнение», похоже, работает, но работает, но Выбрать все только расширяет JTREE и выбирает последний узел. Я думаю, что каждый раз, когда узел выбран в программно, я отказываюсь от бывшего.

JTREE настроен так:

curvesTree = new JTree(rootNode);
curvesTree.setExpandsSelectedPaths(true);
curvesTree.getSelectionModel().setSelectionMode(TreeSelectionModel.
                  DISCONTIGUOUS_TREE_SELECTION);
5
задан Cœur 3 January 2019 в 05:53
поделиться