亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? explorer.java

?? 這是計算機專業操作系統課程的課程設計
?? JAVA
字號:
/**
 *定義資源管理器類,包括初始化,點擊tree和list事件的監聽,樹的展開與收縮監聽
 *調用FileNode.java構造目錄樹
 */
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.util.EventObject;
import java.util.*;

public class Explorer extends JFrame implements TreeExpansionListener,TreeSelectionListener, ActionListener 
//資源管理器類實現:樹展開監聽器,選擇樹監聽器,列表的單擊動作監聽器
{
    final JTree tree = new JTree(createTreeModel());//定義樹型
    final JPanel list = new JPanel(new GridLayout(19,3));//定義列表
    final JSplitPane split;
    final JPanel jPanel1 = new JPanel(new BorderLayout());//添加面板
    final JLabel jLabel1 = new JLabel(" ");//記錄所選擇文件的路徑
    final JLabel jLabel2 = new JLabel("中國民航大學 05B 張浩");
    public Explorer() 
    {
        //******初始化窗體,將其設置在正中
        Dimension dimension = getToolkit().getScreenSize();
        int i = (dimension.width - 640) / 2;
        int j = (dimension.height - 480) / 2;
        setBounds(i, j, 640, 480);
        //******
        setTitle("資源管理器");
        //******關閉窗口事件
        addWindowListener
        (
        new WindowAdapter() 
        {
            public void windowClosing(WindowEvent windowevent) 
            {
                System.exit(0);
            }
        }
        );
        //******
        //******初始化樹tree和list
        JScrollPane treeView = new JScrollPane(tree);
        treeView.setPreferredSize(new Dimension(200,200));
        
        JScrollPane listView = new JScrollPane(list);
        listView.setPreferredSize(new Dimension(300,600));

        split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,treeView,listView);
        split.setLastDividerLocation(600);
        getContentPane().add(split);
        list.setBackground(Color.white);
        //******
        tree.addTreeExpansionListener(this);
        tree.addTreeSelectionListener(this);
        
        try 
        {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            SwingUtilities.updateComponentTreeUI(this);
        } 
        catch (Exception ex) {}
        
        //******設置地址欄的位置
        getContentPane().add(jLabel2,BorderLayout.SOUTH);
        getContentPane().add(jPanel1, BorderLayout.NORTH);
        jPanel1.add(jLabel1, BorderLayout.CENTER);
        //******
    }
//****************************實現借口TreeExpansionEvent的方法
    public void treeCollapsed(TreeExpansionEvent e) {}

    public void treeExpanded(TreeExpansionEvent e) 
    {
        if (tree.getLastSelectedPathComponent() == null) //返回當前選擇的第一個節點中的最后一個路徑組件
        {
            return;
        }
        if (tree.getLastSelectedPathComponent().toString().trim().equals("Local")) 
        {
            return;
        }
        TreePath path = e.getPath();//獲得節點的路徑
        //!!!!!!!!!!!
        FileNode node = (FileNode) path.getLastPathComponent();
        if (!node.isExtended()) 
        {
            DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
            node.Extend();
            model.nodeStructureChanged(node);
        }
        //!!!!!!!!!!!!!!!
    }
//*******************************************************************
  
//**********************************************實現接口TreeSelectionEvent的方法

    public void valueChanged(TreeSelectionEvent e)
    //該方法在改變選擇項時調用
    {
        try 
        {
            if (tree.getLastSelectedPathComponent() == null) 
            {
                return;
            }
            list.removeAll();
            if (tree.getLastSelectedPathComponent().toString().trim().equals("Local"))
                //點擊local返回各盤根目錄
            {
                File roots[] = File.listRoots();
                for (int i = 1; i < roots.length; i++) 
                {
                    String DiskName = roots[i].toString();
                    DiskName = DiskName.substring(0, DiskName.indexOf(":")+1);//D:\->D:
                    addButton(DiskName, "");//通過addButton將盤符添加到list中
                }
            } 
            else 
            {
                Object[] path = e.getPath().getPath();//返回第一個路徑元素的路徑
                String fileInfo = "";//記錄當前文件的路徑和名稱
                for (int i = 1; i < path.length; i++) 
                {
                    fileInfo += File.separator + path[i].toString();
                }
                File f = new File(fileInfo.substring(1));
                //System.out.print(fileInfo);//\C:\\WINDOWS
                jLabel1.setText(f.toString());
                String[] Tlist = f.list();
                Vector vFile = new Vector(), vDir = new Vector();
                for (int i = 0; i < Tlist.length; i++) 
                {
                    if ((new File(fileInfo + File.separator + Tlist[i])).isDirectory()) 
                    {
                        vDir.addElement(Tlist[i]);
                    } 
                    else 
                    {
                        vFile.addElement(Tlist[i]);
                    }
                }
                sortElements(vFile);
                sortElements(vDir);
                for (int i = 0; i < vDir.size(); i++) {
                    addButton((String) (vDir.elementAt(i)), fileInfo);
                }
                for (int i = 0; i < vFile.size(); i++) {
                    addButton((String) (vFile.elementAt(i)), fileInfo);
                }
            }
            list.doLayout();
            list.repaint();
        } 
        catch (Exception ee) {}
    }
//**********************************************************************************

//************************************************將list中的項按首字母排序
    public void sortElements(Vector v) 
    {
        for (int i = 0; i < v.size(); i++) 
        {
            int k = i;
            for (int j = i + 1; j < v.size(); j++) 
            {
                if (((String) (v.elementAt(j))).toLowerCase().compareTo(((String) (v.elementAt(k))).toLowerCase()) < 0)  
                {
                    k = j;
                }
            }
            if (k != i) 
            {
                swap(k, i, v);
            }
        }
    }
//***************************************************
    
//********************************交換函數
    private void swap(int loc1, int loc2, Vector v) 
    {
        Object tmp = v.elementAt(loc1);
        v.setElementAt(v.elementAt(loc2), loc1);
        v.setElementAt(tmp, loc2);
    }
//****************************************

 //*************list中項目以按鈕形式出現,每個文件為一個按鈕
    private void addButton(String fileName, String filePath) 
    {
        JButton btt = new JButton(fileName);
        btt.setBorder(null);
        btt.setHorizontalAlignment(SwingConstants.LEFT);
        btt.setBackground(Color.white);
        //******為按鈕添加圖標
        if ((new File(filePath + File.separator + fileName)).isDirectory()) 
        {
            btt.setIcon(UIManager.getIcon("Tree.closedIcon"));
        } 
        else 
        {
            btt.setIcon(UIManager.getIcon("Tree.leafIcon"));
        }
        //******
        list.add(btt);
        btt.addActionListener(this);
    }
//******************************************
    
 //********************************點擊tree中的節點和list中的按鈕出發事件
    public void actionPerformed(ActionEvent e) 
    {
        try
         {
            TreePath p = tree.getLeadSelectionPath();//點擊tree
            String fileName = ((JButton) (e.getSource())).getText();//點擊list
            Object[] path = p.getPath();
            String fileInfo = "";
            for (int i = 1; i < path.length; i++) 
            {
                fileInfo += File.separator + path[i].toString();//file.separator為分割符"\"
            }
            //System.out.print(ss);//\C:\\C:\\Borland
            fileInfo = fileInfo.substring(1);
            File f = new File(fileInfo + File.separator + fileName);
            jLabel1.setText(f.toString());
            if (f.isDirectory()) 
                //當選擇項為文件夾時
            {
                int index = tree.getRowForPath(p);
                tree.expandRow(index);
                while (!(tree.getLastSelectedPathComponent().toString().trim().equals(fileName))) 
                {
                    tree.setSelectionRow(index++);
                }
                tree.expandRow(index - 1);
            }
            else 
            {//為文件時,當遇如下后綴時,用記事本將其打開
                jLabel2.setText("文件大小:"+f.length()+"B");//顯示文件大小
                String postfix = fileName.toUpperCase();
                if (
                	postfix.indexOf(".TXT") != -1 ||
                        postfix.indexOf(".JAVA") != -1 ||
                        postfix.indexOf(".HTM") != -1 ||
                        postfix.indexOf(".LOG") != -1
                   ) 
                {
                    Runtime.getRuntime().exec("NotePad.exe " + fileInfo +File.separator + fileName);
                   // System.out.println(fileInfo +File.separator + fileName);
                    //System.out.println(fileInfo);
                     //System.out.println(File.separator);
                      //System.out.println(fileName);
                }
            }
        } 
        catch (Exception ee) {}
    }
//***************************************************************
    
//*********************************初始化樹型,獲得本地文件系統,將根目錄賦給樹
    private DefaultMutableTreeNode createTreeModel() 
    {
        DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("Local");//創建樹的根節點
        File[] rootPath = File.listRoots();//列出可用的文件系統根目錄c: d: e: f:
        for (int i = 1; i < rootPath.length; i++) 
        {
            FileNode Node = new FileNode(rootPath[i]);
            Node.Extend();
            rootNode.add(Node);
        }
        return rootNode;
    }
//****************************************************************************
    
    public static void main(String args[]) 
    {
        Explorer ex =new Explorer();
        ex.setVisible(true);
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本大道久久a久久综合| 国产精品久久久久影院老司| 亚欧色一区w666天堂| 91福利小视频| 亚洲国产日韩一区二区| 在线播放中文一区| 国内精品视频一区二区三区八戒| 2020国产精品自拍| 成人国产精品免费观看动漫| 国产精品国产三级国产aⅴ原创| 91丨porny丨国产入口| 亚洲成人精品一区二区| 日韩欧美一区二区不卡| 国产精品一区二区91| 亚洲裸体xxx| 欧美一区二区三区播放老司机| 精品一区二区三区影院在线午夜| 国产日韩在线不卡| 欧美日韩中文字幕一区二区| 精品一区二区三区免费播放| 国产精品久久久久三级| 欧美日韩一区在线| 国产麻豆视频精品| 一级做a爱片久久| 2023国产精品| 欧美亚洲另类激情小说| 韩国av一区二区三区| 亚洲天堂免费看| 日韩美一区二区三区| 成人精品小蝌蚪| 日本在线不卡视频一二三区| 国产精品午夜在线| 宅男在线国产精品| a亚洲天堂av| 久久精品国产久精国产爱| 亚洲人精品一区| 久久久久久夜精品精品免费| 欧美日韩中文字幕一区| 国产成人自拍网| 日本不卡一二三| 亚洲乱码国产乱码精品精98午夜| 精品国产成人在线影院| 欧美三级日韩三级| 97久久精品人人澡人人爽| 黄一区二区三区| 日韩精品电影一区亚洲| 亚洲三级免费观看| 国产清纯白嫩初高生在线观看91| 欧美军同video69gay| 91麻豆国产福利在线观看| 国产成人综合亚洲91猫咪| 麻豆精品一二三| 亚洲bdsm女犯bdsm网站| 亚洲男人的天堂在线观看| 国产亚洲精久久久久久| 欧美大片在线观看| 91.成人天堂一区| 欧美日韩一区 二区 三区 久久精品| av电影一区二区| 国产91丝袜在线播放| 国产综合色在线| 久久99精品国产.久久久久久 | 精品久久国产97色综合| 欧美系列一区二区| 91黄视频在线| 在线观看日韩电影| 91丨porny丨首页| 波多野结衣91| 成人avav影音| av激情成人网| 97精品国产97久久久久久久久久久久| 国产高清在线精品| 粉嫩绯色av一区二区在线观看| 国产乱淫av一区二区三区| 韩国女主播一区| 国内精品自线一区二区三区视频| 久久99国产精品久久99| 国产又黄又大久久| 国产老肥熟一区二区三区| 国产福利一区二区三区视频在线 | 国产精品1区2区| 国产一区二区三区香蕉| 国产在线精品一区二区不卡了| 激情综合一区二区三区| 国内精品视频一区二区三区八戒| 国产一区二三区| 国产91综合网| 91久久人澡人人添人人爽欧美| 欧美一区二区美女| 亚洲成人精品一区| 丝袜美腿亚洲色图| 免费观看一级欧美片| 精品中文字幕一区二区小辣椒 | 在线成人小视频| 欧美一区午夜视频在线观看 | 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产调教视频一区| 国产精品嫩草影院com| 亚洲男帅同性gay1069| 五月天亚洲精品| 麻豆专区一区二区三区四区五区| 经典一区二区三区| 不卡电影免费在线播放一区| 在线日韩一区二区| 日韩精品一区二区三区三区免费| 精品国产髙清在线看国产毛片| 激情综合色播激情啊| 另类综合日韩欧美亚洲| 国产最新精品精品你懂的| 不卡视频免费播放| 在线观看国产精品网站| 日韩欧美一级特黄在线播放| 国产日本欧洲亚洲| 亚洲第一二三四区| 国内成+人亚洲+欧美+综合在线| 成人av在线观| 欧美一级欧美一级在线播放| 日本一区二区免费在线| 一区二区三区av电影| 久久不见久久见免费视频1| 成人av在线资源| 欧美一级xxx| 亚洲人午夜精品天堂一二香蕉| 蜜桃av噜噜一区二区三区小说| 在线看国产日韩| 国产欧美日韩激情| 三级亚洲高清视频| 99热在这里有精品免费| 欧美成人激情免费网| 亚洲欧美日韩国产另类专区| 欧美亚洲综合网| 欧美一级欧美三级| 综合久久给合久久狠狠狠97色| 日韩国产欧美在线观看| 不卡av电影在线播放| 日韩一区二区在线观看| 亚洲视频一二三区| 激情小说亚洲一区| 欧美日韩国产高清一区| 中文字幕日韩一区| 国产一区二区在线视频| 欧美一区二区在线免费播放 | 欧美性猛片aaaaaaa做受| 日本一区二区三区四区| 久久精品国产一区二区三| 欧美怡红院视频| 综合电影一区二区三区| 国产·精品毛片| 精品精品国产高清a毛片牛牛| 日韩综合小视频| 欧美天堂一区二区三区| 亚洲免费在线播放| av在线播放不卡| 亚洲国产成人私人影院tom| 裸体一区二区三区| 日韩一区二区免费高清| 三级在线观看一区二区 | 欧美妇女性影城| 一区二区三区四区乱视频| 成人黄页毛片网站| 亚洲国产岛国毛片在线| 国产精品99精品久久免费| 精品粉嫩超白一线天av| 久久国产精品99久久久久久老狼| 欧美一区二区视频在线观看2020 | 亚洲成人在线观看视频| 欧洲在线/亚洲| 亚洲一区二区三区小说| 在线影院国内精品| 亚洲在线一区二区三区| 欧美色网一区二区| 婷婷中文字幕一区三区| 777午夜精品视频在线播放| 日本免费新一区视频| 精品日韩在线观看| 国产精品1024久久| 国产精品免费av| 日本福利一区二区| 亚洲aaa精品| 精品嫩草影院久久| 国产精品一品二品| 中文字幕一区二区三区蜜月| 91麻豆精品秘密| 亚洲成a人v欧美综合天堂下载| 日韩一区二区电影在线| 国产一区二区三区四区五区美女| 国产欧美一区二区精品婷婷 | 久久爱www久久做| 国产性色一区二区| 91色乱码一区二区三区| 亚洲一区二区四区蜜桃| 欧美一区二区精品久久911| 国产精品中文字幕欧美| 自拍偷自拍亚洲精品播放| 欧美三级在线看| 国产一本一道久久香蕉| 亚洲欧美色一区| 日韩精品一区二区三区视频在线观看 | 久久9热精品视频| 国产精品久久久99|