⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frame1.java~68~

📁 该程序实现了windows系统的资源管理器功能
💻 JAVA~68~
字号:
package test_tree;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.tree.TreeNode;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.*;
import javax.swing.event.TreeExpansionEvent;
import javax.swing.tree.ExpandVetoException;
import javax.swing.event.TreeWillExpandListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.TreePath;
import javax.swing.tree.DefaultTreeCellRenderer;
import java.awt.Color;
import javax.swing.ImageIcon;
import javax.swing.JSplitPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.util.ArrayList;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;

public class Frame1 extends JFrame {
    BorderLayout borderLayout1 = new BorderLayout();
    DefaultMutableTreeNode root=new DefaultMutableTreeNode("我的电脑");
    DefaultTreeCellRenderer de=new DefaultTreeCellRenderer();
    ImageIcon img1=new ImageIcon("d:\\comp1.gif");
    JSplitPane jSplitPane1 = new JSplitPane();
    JScrollPane jScrollPane1 = new JScrollPane();
    JScrollPane jScrollPane2 = new JScrollPane();
    JTree jTree1 = new JTree(root);
    MytableModel table=new MytableModel();
    JTable jTable1 = new JTable();
    ArrayList list;
    private void create_treenode(DefaultMutableTreeNode node)
   {
      File[]temp= File.listRoots();
      for(int i=0;i<temp.length;i++)
      {
          DefaultMutableTreeNode node1=new DefaultMutableTreeNode(temp[i].toString());
          node.add(node1);
          DefaultMutableTreeNode node2=new DefaultMutableTreeNode(temp[i].toString());
          node1.add(node2);

      }

   }
    public Frame1() {
        try {
           de.setTextSelectionColor(Color.red);
           de.setClosedIcon(img1);
            this.jTree1.setCellRenderer(de);
            jbInit();
           create_treenode(root);
           this.jTable1.setModel(this.table);

        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        getContentPane().setLayout(borderLayout1);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jTree1.addTreeSelectionListener(new Frame1_jTree1_treeSelectionAdapter(this));
        jScrollPane2.addMouseListener(new Frame1_jScrollPane2_mouseAdapter(this));
        jTable1.addMouseListener(new Frame1_jTable1_mouseAdapter(this));
        this.getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);
        jSplitPane1.add(jScrollPane1, JSplitPane.LEFT);
        jScrollPane1.getViewport().add(jTree1);
        jSplitPane1.add(jScrollPane2, JSplitPane.RIGHT);
        jScrollPane2.getViewport().add(jTable1);
    }

    public static void main(String[] args) {
        Frame1 frame1 = new Frame1();
        frame1.setSize(600,600);
        frame1.setVisible(true);
    }

    public void jTree1_treeWillExpand(TreeExpansionEvent event) throws
            ExpandVetoException {
        DefaultMutableTreeNode node=(DefaultMutableTreeNode)
        event.getPath().getLastPathComponent();
        if(node.toString().equals("我的电脑"))
        {
            return;
        }
        node.removeAllChildren();
        TreeNode []m=node.getPath();
        String  dir=  getpath(m);
        File file=new File(dir);
    try {
        File[] lis = file.listFiles();
        node.removeAllChildren();
        for (int i = 0; i < lis.length; i++) {
            if (lis[i].isDirectory()) {
                DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(lis[i].
                        getName());
                DefaultMutableTreeNode node2 = new DefaultMutableTreeNode();
                node.add(node1);
                node1.add(node2);
            }
        }
    } catch (Exception ex) {
    }

    }

    private String getpath(Object[]temp)
    {
         String dir="";
          for(int i=1;i<temp.length;i++)
          {
               DefaultMutableTreeNode node=(DefaultMutableTreeNode)temp[i];
               dir=dir+node.toString()+"\\";
          }
           return dir;
    }
    public void jTree1_valueChanged(TreeSelectionEvent e) {
      DefaultMutableTreeNode node=(DefaultMutableTreeNode)
      e.getNewLeadSelectionPath().getLastPathComponent();
        if(e.getNewLeadSelectionPath().getLastPathComponent().toString().equals("我的电脑"))
        return;
        Object[]temp= e.getNewLeadSelectionPath().getPath();
        String dir=  getpath(temp);
        File file=new File(dir);
        this.list=new ArrayList();
        try {
            File[] lis = file.listFiles();
            node.removeAllChildren();
            for (int i = 0; i < lis.length; i++) {
                if (lis[i].isDirectory()) {
                    DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(
                            lis[i].getName());
                    DefaultMutableTreeNode node2 = new DefaultMutableTreeNode();
                    node.add(node1);
                    node1.add(node2);
                }
                else
                {
                    list.add(lis[i]);
                }
            }
            this.table.setdata(list);
            this.jTable1.updateUI();
        } catch (Exception ex) {
            System.out.println(ex.toString());
        }
    }

    public void jScrollPane2_mouseClicked(MouseEvent e) {

    }

    public void jTable1_mouseClicked(MouseEvent e) {

   }

    public void jTable1_mouseReleased(MouseEvent e) {
        int ok= this.jTable1.getSelectedRow();
   String file= (String)this.table.getValueAt(ok,0);
   Object []temp=  this.jTree1.getSelectionPath().getPath();
   String dir=this.getpath(temp);
   dir=dir.substring(0,dir.length()-1);
   dir=dir+file;
   System.out.println(dir);
try {
 String []d=new String[1];
 d[0]=dir;
  Runtime.getRuntime().exec(dir);
} catch (Exception ex) {
}

    }
}


class Frame1_jTable1_mouseAdapter extends MouseAdapter {
    private Frame1 adaptee;
    Frame1_jTable1_mouseAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }

    public void mouseClicked(MouseEvent e) {
        adaptee.jTable1_mouseClicked(e);
    }

    public void mouseReleased(MouseEvent e) {
        adaptee.jTable1_mouseReleased(e);
    }
}


class Frame1_jScrollPane2_mouseAdapter extends MouseAdapter {
    private Frame1 adaptee;
    Frame1_jScrollPane2_mouseAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }

    public void mouseClicked(MouseEvent e) {
        adaptee.jScrollPane2_mouseClicked(e);
    }
}


class Frame1_jTree1_treeSelectionAdapter implements TreeSelectionListener {
    private Frame1 adaptee;
    Frame1_jTree1_treeSelectionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }

    public void valueChanged(TreeSelectionEvent e) {
        adaptee.jTree1_valueChanged(e);
    }
}


class Frame1_jTree1_treeWillExpandAdapter implements TreeWillExpandListener {
    private Frame1 adaptee;
    Frame1_jTree1_treeWillExpandAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }

    public void treeWillExpand(TreeExpansionEvent event) {
        try {
            this.adaptee.jTree1_treeWillExpand(event);
        } catch (ExpandVetoException ex) {
        }
    }

    public void treeWillCollapse(TreeExpansionEvent event) {
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -