JTree не мульти-выбираемый, если он редактируемый - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть JTree с одним выбором. Я хочу сделать дерево множественным. Для этого я добавил следующее:

_myTree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
_myTree.getSelectionModel().setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION);
_myTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

Это не работало. Я проверил, удалив строку

_myTree.setEditable(true);

, и она работает. Я могу выбрать несколько узлов в дереве, только если он не редактируется. Есть ли способ это исправить?

1 Ответ

0 голосов
/ 06 апреля 2020

Добавить модель выбора как TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION в дерево.

public class JTreeExample {

    public static void main(String[] argv) {
        JTree tree = new JTree();
        tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
        JFrame frame = new JFrame("JTree multi selection");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new JScrollPane(tree));
        frame.setPreferredSize(new Dimension(400, 400));
        frame.setLocation(200, 200);
        frame.pack();
        frame.setVisible(true);
        tree.setEditable(true);
    }
}

После того, как вы сможете использовать TreeSelectionListener для получения выбранного узла.

https://docs.oracle.com/javase/7/docs/api/javax/swing/event/TreeSelectionListener.html

...