Exemplo n.º 1
0
 @Override
 public void mouseClicked(MouseEvent e) {
   int clickedIndex = table.getSelectedRow(); // 获取鼠标点击的行数
   if (clickedIndex >= 0) {
     EditSelectAll.setEnabled(true);
     SelectAll.setEnabled(true);
     isTable = true;
     currentfile = tablemodel.getFile(clickedIndex);
     addressText.setText(currentfile.getAbsolutePath()); // 地址栏显示路径
     if (!currentnode.getFile().getName().equals(fsv.getHomeDirectory())) {
       FileDelete.setEnabled(true);
       Delete.setEnabled(true);
     }
   }
   if (e.getClickCount() >= 2) {
     EditSelectAll.setEnabled(true);
     SelectAll.setEnabled(true);
     if (currentfile.isDirectory()) // 当单击的是目录
     {
       try {
         upbtn.setEnabled(true);
         if (!tree.isExpanded(currentPath)) tree.expandPath(currentPath); // 将树中对应的节点打开
         if (currentnode.getChildCount() > 0) {
           for (int i = 0; i < currentnode.getChildCount(); i++) {
             FileTreeNode temp =
                 (FileTreeNode) currentnode.getChildAt(i); // 返回currentNode的子节点数组中指定索引处的子节点。
             if (temp.GetFile()
                 .getPath()
                 .equalsIgnoreCase(currentfile.getPath())) // 判断子节点路径是否等于列表中选的的路径
             {
               TreeNode[] nodes = treemodel.getPathToRoot(temp); // 获取从根节点到 temp的路径
               currentPath = new TreePath(nodes);
               tree.setSelectionPath(currentPath); // 选择子节点的父节点
               break;
             }
           }
         }
       } catch (Exception ee) {
         ee.printStackTrace();
       }
     }
     if (currentfile.isFile()) {
       Runtime ce = Runtime.getRuntime();
       String Temp = new String(currentfile.getAbsolutePath());
       String cmdarray = "cmd /c start " + Temp;
       try {
         ce.exec(cmdarray);
       } catch (IOException e1) {
         e1.printStackTrace();
       }
     }
   } else if (e.getButton() == e.BUTTON3) {
     popup.show(e.getComponent(), e.getX(), e.getY());
   }
 }
Exemplo n.º 2
0
  @Override
  public void valueChanged(TreeSelectionEvent e) {
    // TODO Auto-generated method stub
    try {
      currentPath = tree.getSelectionPath();
      currentnode = (FileTreeNode) e.getPath().getLastPathComponent();
      currentfile = currentnode.GetFile();
      tree.scrollPathToVisible(currentPath); // 确保路径中所有的路径组件均展开(最后一个路径组件除外)并滚动,以便显示curpath路径标识的节点
      addressText.setText(currentnode.GetFile().getAbsolutePath()); // 将点击的节点的路径在地址栏中显示出来
      isTable = false;

      if (!currentfile.getName().equals("Desktop")) {
        Vector files = treeview.GetAll(currentnode.GetFile()); // 获取点击节点下的所有文件
        tablemodel.addAllFiles(files); // 将这些文件加到列表中
        upbtn.setEnabled(true);
        FileNewFolder.setEnabled(true);
        NewFolder.setEnabled(true);
        FileNewFile.setEnabled(true);
        FileNature.setEnabled(true);
        FileRename.setEnabled(true);
        EditCut.setEnabled(true);
        EditCopy.setEnabled(true);
        EditPaste.setEnabled(true);
        NewFile.setEnabled(true);
        Nature.setEnabled(true);
        Rename.setEnabled(true);
        Cut.setEnabled(true);
        Copy.setEnabled(true);
        Paste.setEnabled(true);
        if (!(currentnode.getParent().toString()).equals(File.listRoots())
            && (currentnode.toString() != "网络")
            && (currentnode.toString() != "库")
            && (currentnode.toString() != "家庭组")) // 不是根节点
        {
          FileDelete.setEnabled(true);
          Delete.setEnabled(true);
        } else {
          FileDelete.setEnabled(false);
          Delete.setEnabled(true);
        }
      } else {
        downbtn.setEnabled(false);
        upbtn.setEnabled(false);
        FileNewFolder.setEnabled(false); //  菜单栏中的菜单选项
        FileNewFile.setEnabled(false);
        FileNature.setEnabled(false);
        FileRename.setEnabled(false);
        FileDelete.setEnabled(false);
        EditCut.setEnabled(false);
        EditCopy.setEnabled(false);
        NewFolder.setEnabled(false); //  右键菜单中的菜单选项
        NewFile.setEnabled(false);
        Nature.setEnabled(false);
        Rename.setEnabled(false);
        Delete.setEnabled(false);
        Cut.setEnabled(false);
        Copy.setEnabled(false);
        currentnode = (TreeNode) treemodel.getRoot();
        tablemodel.addAllFiles(treeview.GetRoot());
      }
    } catch (Exception ee) {
      JOptionPane.showMessageDialog(null, "读取文件错误!", "Error", JOptionPane.ERROR_MESSAGE);
      ee.printStackTrace();
    }
  }