【问题标题】:jtree programmatic multi selectionjtree 程序化多选
【发布时间】:2011-10-22 13:13:28
【问题描述】:

是否能够以编程方式在 JTree 中选择多个树节点? 我通过tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);设置了多选模式

我所需要的只是让我的应用程序能够以编程方式选择一些节点。但我还没有找到如何做到这一点的方法。任何人都可以提供建议如何解决这个问题?

谢谢

【问题讨论】:

    标签: java swing user-interface jtree


    【解决方案1】:
    import java.awt.Dimension;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.tree.*;
    
    public class TreeWithMultiDiscontiguousSelections {
    
        public static void main(String[] argv) {
            JTree tree = new JTree();
            tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
            int treeSelectedRows[] = {3, 1};
            tree.setSelectionRows(treeSelectedRows);
            TreeSelectionListener treeSelectionListener = new TreeSelectionListener() {
    
                @Override
                public void valueChanged(TreeSelectionEvent treeSelectionEvent) {
                    JTree treeSource = (JTree) treeSelectionEvent.getSource();
                    System.out.println("Min: " + treeSource.getMinSelectionRow());
                    System.out.println("Max: " + treeSource.getMaxSelectionRow());
                    System.out.println("Lead: " + treeSource.getLeadSelectionRow());
                    System.out.println("Row: " + treeSource.getSelectionRows()[0]);
                }
            };
            tree.addTreeSelectionListener(treeSelectionListener);
            JFrame frame = new JFrame("JTree With Multi-Discontiguous selection");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(new JScrollPane(tree));
            frame.setPreferredSize(new Dimension(380, 320));
            frame.setLocation(150, 150);
            frame.pack();
            frame.setVisible(true);
        }
    
        private TreeWithMultiDiscontiguousSelections() {
        }
    }
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 粘贴到带箭头的世界对话框中会转义括号,并重新排序链接。
      【解决方案3】:

      将它用于您的 JTree

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

      【讨论】:

        猜你喜欢
        • 2020-07-18
        • 1970-01-01
        • 1970-01-01
        • 2019-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多