JTree如果是可编辑的,则不能多选

问题描述 投票:0回答:1

我有一个具有单个选择的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);

并且有效。仅当树不可编辑时,才能对其进行多选。有没有办法解决这个问题?

java jtree
1个回答
0
投票

将选择模型作为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

© www.soinside.com 2019 - 2024. All rights reserved.