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

📄 left_treepane.java

📁 使用java技术写的一个图像处理框架,实现了目录树,分割窗格,任务栏图标等技术
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
 /**
* 该类实现了一个树模型并将实现的模型
* 共添加了两个选项卡面板,"树"及"我的相册 "
* */
 import javax.swing.*;
 import java.io.*;
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.tree.*;
 import javax.swing.*;
 import javax.swing.event.*;
 import java.util.*;
 import java.util.List;
public class Left_treepane extends JPanel
{
    public static ImageIcon computerIcon;//"我的电脑"图标
    public static ImageIcon driverIcon; //"驱动器"图标
    public static ImageIcon folderIcon; //"文件夹"图标
    public static ImageIcon fileIcon;    //"文件"图标

    static String temppath=System.getProperty("java.io.tmpdir")+File.separator
                            +"我的电脑";
    JTree myTree=new JTree(createModel());
    JScrollPane jscrollpane=null;
    MyTreeNode selectedNode=null;
    JTabbedPane jtp=null;
    MyPhoto myphoto=new MyPhoto();//"我的相册"面板
    public Left_treepane()
    {
       jinit();
       jtp=new JTabbedPane();
       jscrollpane=new JScrollPane(myTree);
       jtp.addTab("浏览目录",jscrollpane);
       jtp.addTab("我的相册",myphoto);
       this.setLayout(new GridLayout(1,1));
       add(jtp);
    }
    public void jinit()
    {
         try {
            computerIcon = new ImageIcon(Left_treepane.class.getResource("images/Computer.gif"));//我的电脑图标
            driverIcon = new ImageIcon(Left_treepane.class.getResource("images/Driver.gif"));//驱动器图标
            folderIcon = new ImageIcon(Left_treepane.class.getResource("images/Folder.gif"));//文件夹图标
            fileIcon = new ImageIcon(Left_treepane.class.getResource("images/File.gif"));//文件图标
        }
         catch (Exception e)
          {
            System.out.println("ERROR loading image files !");
           }
        myTree.setBackground(Color.WHITE);
        myTree.addTreeSelectionListener(new Left_treepane_selection(this));
        myTree.addTreeWillExpandListener(new Left_treepane_willExpand(this));

    }
    public DefaultTreeModel createModel()
    {
       File mycomputer=new File(temppath);
       try
       {
         mycomputer.mkdirs();
         mycomputer.deleteOnExit();
       }
       catch(Exception e){}
       MyTreeNode rootNode=new MyTreeNode(mycomputer);
       File[] roots=MyUtility.getRoots();
       MyTreeNode parent;
       for(int i=0;i<roots.length;i++)
       {
           parent=new MyTreeNode(roots[i]);
           parent.explore();
           rootNode.add(parent);
       }

       return new DefaultTreeModel(rootNode);
    }
    public void leftwillExpand(TreeExpansionEvent event)
    {
        TreePath path=event.getPath();
        MyTreeNode selectedNode=(MyTreeNode)path.getLastPathComponent();
        if(!selectedNode.isExplored())
        selectedNode.explore();

    }
    public void treeSelection(TreeSelectionEvent e)
    {
       TreePath path=e.getPath();
       MyTreeNode myTreeNode=(MyTreeNode)myTree.getLastSelectedPathComponent();
       SuoluePane suolue=SuoluePane.getSuolue();
       SuoluePane.myTreeNode=myTreeNode;
       suolue.createButton();

        //suolue.repaint();
    }
  /*
     JScrollPane jscrollpane=null;
     JTree myTree=null;
     MyTreeNode selectedNode=null;
     File selectedFile = null;
     public static String temppath=System.getProperty("java.io.tmpdir")+File.separator+
                               "我的电脑";
    public Left_treepane()
    {
        jinit();
        //this.setPreferredSize(new Dimension(200,300));
        //this.setMaximumSize(new Dimension(200,300));
    }
    public  void jinit()
    {

            try {
            computerIcon = new ImageIcon(Left_treepane.class.getResource("images/Computer.gif"));//我的电脑图标
            driverIcon = new ImageIcon(Left_treepane.class.getResource("images/Driver.gif"));//驱动器图标
            folderIcon = new ImageIcon(Left_treepane.class.getResource("images/Folder.gif"));//文件夹图标
            fileIcon = new ImageIcon(Left_treepane.class.getResource("images/File.gif"));//文件图标
            browseIcon = new ImageIcon(Left_treepane.class.getResource("images/Right.gif"));//浏览图标
        } catch (Exception e) {
            System.out.println("ERROR loading image files !");
        }

       myTree=new JTree(createTreeModel());
       ///myTree.setAlignmentX((float) 0.5);
       myTree.setBackground(Color.WHITE);
      // myTree.setScrollsOnExpand(true);
      // myTree.setShowsRootHandles(false);

     //  myTree.addTreeExpansionListener(new
     //        Left_treepane_myTree_treeExpansionAdapter(this));
      //  myTree.addMouseListener(new Left_treepane_myTree_mouseAdapter(this));
        myTree.addTreeWillExpandListener(new
                Left_treepane_myTree_treeWillExpandAdapter(this));
        myTree.setCellRenderer(new MyTreeRenderer());
        myTree.getSelectionModel().setSelectionMode
                (TreeSelectionModel.SINGLE_TREE_SELECTION);
        myTree.setSelectionRow(0);//树的当前选择为根目录
        //myTree.setAlignmentX((float) 0.5);
        //myTree.setShowsRootHandles(false);
      //  myTree.addTreeSelectionListener(new
      //          Left_treepane_myTree_treeSelectionAdapter(this));

       jscrollpane=new JScrollPane(myTree);
       this.setLayout(new GridLayout(1,1));
       this.add(jscrollpane);
    }
    /**
     * 创建树模型*/
     /*
    public DefaultTreeModel createTreeModel()
    {
        File mycomputer=new File(temppath);
        try
        {
            mycomputer.mkdirs(); //创建文件夹
            mycomputer.deleteOnExit();   //在虚拟机退出时删除创建的文件夹
        }
        catch(Exception e)
         {
             System.out.println("文件已存在或者不存在");
        }
        MyTreeNode rootTree=new MyTreeNode(mycomputer);
        MyTreeNode parent;

         File[] roots = MyUtility.getRoots();

            // Remove A: drive from the initial list of drives, since whenever the
            // JTree is repaint, it tries to read floppy drive A:\.
            // for (int i = 0; i < roots.length; i++) {
            int readfirst = 0;

            if (roots[readfirst].getPath().toLowerCase().startsWith("a:")) {
                readfirst = 1;
            }
            for (int i = readfirst; i < roots.length; i++) {
                parent = new MyTreeNode(roots[i]);

                parent.explore();

                rootTree.add(parent);
            }

            // By default, use the first non-floppy disk here.
            selectedFile = null;

        selectedNode=rootTree;
        return new DefaultTreeModel(rootTree);
    }
     void myTree_valueChanged(TreeSelectionEvent e) {
        selectedNode = (MyTreeNode)
                myTree.getLastSelectedPathComponent();

        selectedFile = null;

        // Refresh the address field.
        if (selectedNode != null) {
            File selectedDir = (File) selectedNode.getUserObject();

            // Update the address text field and status bar.
        }

        // Refresh the file table.

        // Revalidate the JScrollPane component for the changed JTable.
        // Display the scrollbar if necessary.
    }

    void myTree_treeExpanded(TreeExpansionEvent e) {
        DefaultTreeModel treeModel = (DefaultTreeModel) myTree.getModel();
        TreePath newPath = new TreePath(treeModel.getPathToRoot(selectedNode));

        myTree.setSelectionPath(newPath);
        myTree.scrollPathToVisible(newPath);
    }

    void myTree_mouseClicked(MouseEvent e) {
        // Enable both left click and right click selection. Left click selection is
        // auto-enabled, and doesn't need to be enabled specifically.
        TreePath curTreePath = myTree.getClosestPathForLocation(e.getX(),
                e.getY());

        myTree.clearSelection();
        myTree.addSelectionPath(curTreePath);
    }

    void myTree_treeWillExpand(TreeExpansionEvent e) throws
            ExpandVetoException {

        TreePath path = e.getPath();
        MyTreeNode selectedNode = (MyTreeNode) path.getLastPathComponent();

        if (!selectedNode.isExplored()) {
            selectedNode.explore();
        }
    }

    /**

⌨️ 快捷键说明

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