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

📄 frame1.java~41~

📁 该程序实现了windows系统的资源管理器功能
💻 JAVA~41~
字号:
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;

public class Frame1 extends JFrame {
    BorderLayout borderLayout1 = new BorderLayout();
    DefaultMutableTreeNode root=new DefaultMutableTreeNode("我的电脑");
    JTree jTree1=new JTree(root) ;

    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 {
            jbInit();
           create_treenode(root);
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        getContentPane().setLayout(borderLayout1);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jTree1.addTreeWillExpandListener(new
                                         Frame1_jTree1_treeWillExpandAdapter(this));
        jTree1.addTreeSelectionListener(new Frame1_jTree1_treeSelectionAdapter(this));
        this.getContentPane().add(jTree1, java.awt.BorderLayout.CENTER);
    }

    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);
       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);
           }
       }

    }

    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);
        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);
            }
        }
    }
}


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

    public void treeWillExpand(TreeExpansionEvent event) {
        try {
            adaptee.jTree1_treeWillExpand(event);
        } catch (javax.swing.tree.ExpandVetoException exception0) {
            exception0.printStackTrace();
        }
    }

    public void treeWillCollapse(TreeExpansionEvent event) {
    }
}


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);
    }
}

⌨️ 快捷键说明

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