我有一个具有单个选择的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);
并且有效。仅当树不可编辑时,才能对其进行多选。有没有办法解决这个问题?
将选择模型作为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