jtree 在编辑的时候,要控制焦点只能在当前编辑的结点上,不能选择其他结点,怎么做???

解决方案 »

  1.   

    LZ 可以参考如下代码:
    public class TreeEventHandle extends MouseAdapter implements
    TreeSelectionListener {
    // DefaultTreeModel treeModel = null;
    DefaultMutableTreeNode root; public TreeEventHandle() {
    try {
    jbInit();
    } catch (Exception exception) {
    exception.printStackTrace();
    }
    } private void jbInit() {
    root = new DefaultMutableTreeNode("系统", true);
    JTree tree = new JTree(root);
    tree.getSelectionModel().setSelectionMode(
    TreeSelectionModel.SINGLE_TREE_SELECTION);
    tree.addTreeSelectionListener(this); JScrollPane scrollPane = new JScrollPane();
    scrollPane.setViewportView(tree); } public void valueChanged(TreeSelectionEvent e) {
    JTree tree = (JTree) e.getSource();
    // 利用JTree的getLastSelectedPathComponent()方法取得目前选取的节点.
    DefaultMutableTreeNode selectionNode = (DefaultMutableTreeNode) tree
    .getLastSelectedPathComponent(); if (selectionNode != null && selectionNode.isLeaf()) {
    JOptionPane.showMessageDialog(null, "叶子:"
    + selectionNode.toString());
    System.out.println("叶子:" + selectionNode.toString());
    } }
    }
      

  2.   

    tree.setSelectionPath(path);
    tree.scrollPathToVisible(path);
    treeModel.nodeStructureChanged(node);
      

  3.   

    如果在private class ListTreeTreeSelectionListener implements
    TreeSelectionListener {
    public void valueChanged(TreeSelectionEvent e) {
    在这里可以通过e获old 接点,
    tree.setSelectionPath(path); 后
    又会触发一次valueChanged这样会死循环