青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import java.io.FileFilter;

import java.util.HashMap;

import java.util.Map;


import javax.swing.BorderFactory;

import javax.swing.JButton;

import javax.swing.JCheckBox;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.SwingUtilities;


public class PathTree extends JPanel {

    private static final long serialVersionUID = 1L;


    private JButton stopButton = new JButton("停止掃描");

    private JButton browseButton = new JButton("選擇文件夾");

    private JTextArea pathsTextArea = new JTextArea();

    private JCheckBox showHiddenFilesCheckbox = new JCheckBox("顯示隱藏文件", false);


    private Map<Integer, String> pathIndexes = new HashMap<Integer, String>();

    private FileFilter docFilter = new DocFilter(); // 文檔過濾器

    private FileFilter dirFilter = new DirFilter(); // 文件夾過濾器


    private boolean stopped = false; // 是否停止掃描的標志


    public PathTree() {

        initGui();

    }


    // 初始化界面

    private void initGui() {

        this.setLayout(new BorderLayout());


        JPanel buttonsPanel = new JPanel();

        buttonsPanel.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, Color.GRAY));

        buttonsPanel.add(showHiddenFilesCheckbox);

        buttonsPanel.add(browseButton);

        buttonsPanel.add(stopButton);

        this.add(buttonsPanel, BorderLayout.NORTH);


        JScrollPane scroller = new JScrollPane(pathsTextArea);

        scroller.setBorder(null);

        this.add(scroller, BorderLayout.CENTER);


        browseButton.addActionListener(new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                // 選擇文件夾

                final JFileChooser chooser = new JFileChooser();

                chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

                int result = chooser.showOpenDialog(PathTree.this);


                if (result == JFileChooser.APPROVE_OPTION) {

                    Thread t = new Thread(new Runnable() {

                        @Override

                        public void run() {

                            File dir = chooser.getSelectedFile();

                            pathsTextArea.setText("");

                            stopped = false;

                            walkTree(dir, 0);

                        }

                    });

                    t.start();

                }

            }

        });


        stopButton.addActionListener(new ActionListener() {

            @Override

            public void actionPerformed(ActionEvent e) {

                stopped = true;

            }

        });

    }


    // 遞歸遍歷目錄樹

    private void walkTree(File dir, int level) {

        // 1. current dir path

        // 2. docs path that located in this dir

        // 3. sub dirs path


        if (stopped) { return; }


        // 如果不顯示隱藏文件,則返回

        if (dir.isHidden() && !showHiddenFilesCheckbox.isSelected()) { return; }


        final StringBuilder pathBuffer = new StringBuilder(1024);


        // 訪問當前目錄

        pathBuffer.append(createPath(dir, level));


        // 訪問文檔

        for (File doc : dir.listFiles(docFilter)) {

            if (doc.isHidden() && !showHiddenFilesCheckbox.isSelected()) {

                continue;

            }

            pathBuffer.append(createPath(doc, level + 1));

        }


        // 把當前目錄下的文件更新到text area中

        SwingUtilities.invokeLater(new Runnable() {

            @Override

            public void run() {

                pathsTextArea.append(pathBuffer.toString());

            }

        });


        // 遞歸遍歷子目錄

        for (File subDir : dir.listFiles(dirFilter)) {

            walkTree(subDir, level + 1);

        }

    }


    // 創建文件的路徑

    public String createPath(File file, int level) {

        StringBuilder pathBuffer = new StringBuilder(128);

        pathBuffer.append(getPathIndex(level)).append(file.getName()).append("\n");


        return pathBuffer.toString();

    }


    // 創建目錄的縮進

    private String getPathIndex(int level) {

        // 如果不存在,則創建

        if (pathIndexes.get(level) == null) {

            StringBuilder indexBuffer = new StringBuilder(128);

            for (int i = 0; i < level; ++i) {

                indexBuffer.append("|        ");

            }


            indexBuffer.append("|----");

            pathIndexes.put(Integer.valueOf(level), indexBuffer.toString());

            return indexBuffer.toString();

        } else {

            return pathIndexes.get(level);

        }

    }


    // 創建主窗口

    private static void createGUIAndShow() {

        JFrame frame = new JFrame("目錄結構樹");

        frame.setContentPane(new PathTree());

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        Dimension ss = Toolkit.getDefaultToolkit().getScreenSize();

        int w = 600;

        int h = 700;

        int x = (ss.width - w) / 2;

        int y = (ss.height - h) / 2 - 40;

        x = x > 0 ? x : 0;

        y = y > 0 ? y : 0;

        frame.setBounds(x, y, w, h);

        frame.setVisible(true);

    }


    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override

            public void run() {

                createGUIAndShow();

            }

        });

    }

}


class DocFilter implements FileFilter {

    @Override

    public boolean accept(File file) {

        return file.isFile();

    }

}


class DirFilter implements FileFilter {

    @Override

    public boolean accept(File file) {

        return file.isDirectory();

    }

}

posted on 2010-12-26 04:23 逛奔的蝸牛 閱讀(1029) 評論(0)  編輯 收藏 引用 所屬分類: Java
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久一区二区三区四区| 国产一区二区三区在线观看免费 | 国产精品爱啪在线线免费观看| 午夜亚洲激情| 美女露胸一区二区三区| 久久三级福利| 久久国产主播精品| 午夜精品久久久久久久久| 久久综合狠狠综合久久综青草 | 欧美日韩精品免费看| 久久久www成人免费毛片麻豆| 亚洲网在线观看| 欧美sm重口味系列视频在线观看| 久久九九精品| 久久精品国产亚洲精品| 亚洲精品永久免费| 国产午夜精品视频免费不卡69堂| 欧美激情中文字幕一区二区| 国产精品国产三级国产专播品爱网| 欧美成人资源网| 亚洲午夜日本在线观看| 久久亚洲春色中文字幕| 久久精品在线播放| 午夜一区在线| 一级成人国产| 欧美午夜片在线免费观看| 久久这里有精品视频| 亚洲精品一区二区三区福利| 亚洲激情视频网站| 国产视频一区在线观看一区免费 | 亚洲人成小说网站色在线| 久久精品91久久久久久再现| 亚洲激情女人| 99精品视频免费全部在线| 久久综合一区二区三区| 牛牛影视久久网| 欧美一区1区三区3区公司| 久久精品国产亚洲aⅴ| 欧美在线影院| 亚洲第一中文字幕| 亚洲日本免费| 久久亚洲一区| 国产一区二区三区观看| 欧美精品入口| 亚洲第一页自拍| 国产精品区二区三区日本| 欧美伊人久久大香线蕉综合69| 亚洲人成啪啪网站| 亚洲激情偷拍| 一区二区三区日韩| 久热国产精品| 欧美三区不卡| 亚洲视频你懂的| 亚洲大片在线| 欧美欧美天天天天操| 伊人狠狠色丁香综合尤物| 亚洲综合日韩中文字幕v在线| 国产精品久久激情| 一区二区三区欧美亚洲| 久久久久一区二区| 亚洲欧美日韩另类| 91久久夜色精品国产网站| 美国十次了思思久久精品导航| 久久国产日韩欧美| 国产精品自拍在线| 亚洲淫片在线视频| 久久久999精品免费| 国产午夜精品美女视频明星a级| 久久美女性网| 香蕉久久一区二区不卡无毒影院 | 欧美91大片| 亚洲欧美激情一区二区| 欧美一区二区成人6969| 久久久久久成人| 久久久亚洲国产美女国产盗摄| 久久久久久久久久久久久女国产乱 | 国产精品久久久久9999吃药| av不卡免费看| 亚洲日本欧美天堂| 久久精品一区二区三区不卡| 国产老女人精品毛片久久| 亚洲免费高清| 国产伦精品免费视频| 欧美α欧美αv大片| 亚洲精品久久久久久久久久久| 亚洲男人的天堂在线| 中文日韩欧美| 欧美日本不卡视频| 久久婷婷一区| 国产精品视频1区| 夜夜爽99久久国产综合精品女不卡| 欧美日韩中文字幕| 亚洲人成网站色ww在线| 国产在线观看一区| 欧美精品 国产精品| 美女亚洲精品| 黄色一区二区在线| 亚洲最快最全在线视频| 一区二区三区成人 | 亚洲无人区一区| 99re6热在线精品视频播放速度| aⅴ色国产欧美| 在线综合+亚洲+欧美中文字幕| 国产欧美69| 91久久综合亚洲鲁鲁五月天| 国产主播精品在线| 欧美成人精品激情在线观看| 免费在线亚洲欧美| 国内精品久久久久久久果冻传媒| 久久精品亚洲| 久久精品国产精品亚洲综合| 欧美午夜片在线免费观看| 亚洲激情视频| 在线一区二区三区四区五区| 欧美无砖砖区免费| 久久精品国产清自在天天线| 亚洲最新在线| 久久综合久久综合久久综合| 久久riav二区三区| 蜜臀av性久久久久蜜臀aⅴ| 久久精品国产综合精品| 欧美国产1区2区| 亚洲一区二区成人在线观看| 国产欧美日韩精品a在线观看| 免费日韩一区二区| 欧美一区二区三区免费大片| 亚洲第一在线综合在线| 久久激情视频久久| 99re热精品| 国产精品久久久久天堂| 欧美黄色精品| 久久综合免费视频影院| 久久久久久久91| 久久国产一二区| 欧美一区二区三区精品| 国产精品一区二区欧美| 欧美日韩精品一区二区三区四区| 免费日韩一区二区| 国产精品女人网站| 久久久噜噜噜久久久| 亚洲午夜精品在线| 欧美在线视频观看| 亚洲欧美国内爽妇网| 亚洲激情电影在线| 一区二区日韩| 久久躁狠狠躁夜夜爽| 欧美一区二区三区久久精品| 免费欧美网站| 欧美一区二区三区在线| 欧美1区免费| 欧美日韩成人一区| 欧美午夜激情在线| 国产婷婷色综合av蜜臀av| 国产一区二区三区久久 | 久久一区亚洲| 欧美激情一区二区三区全黄| 免费观看亚洲视频大全| 欧美日韩成人| 99在线精品视频| 欧美激情综合| 久久综合九色| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲欧洲一区二区在线观看| 一区二区三区视频观看| 亚洲国产裸拍裸体视频在线观看乱了| 一区二区三区欧美亚洲| 欧美精品在线极品| 国产欧美日韩综合一区在线播放 | 亚洲免费在线电影| 欧美激情一区二区在线| 激情亚洲成人| 亚洲欧美日韩区| 99热免费精品在线观看| 欧美在线观看网站| 国内精品美女av在线播放| 亚洲三级性片| 亚洲国产天堂网精品网站| 欧美国产激情二区三区| 亚洲午夜一级| 亚洲欧美欧美一区二区三区| 韩国女主播一区| 久久av一区二区| 久久一区二区三区四区| 激情欧美日韩| 99精品福利视频| 国产精品久久久久毛片软件| 亚洲欧洲精品一区二区三区| 一区二区三区日韩欧美| 经典三级久久| 免费欧美电影| 久久综合九色综合欧美就去吻| 日韩系列欧美系列| 亚洲欧美一区二区三区极速播放| 国产伦精品一区二区三区四区免费 | 日韩视频免费看| 国产一区二区三区高清在线观看| 亚洲视频自拍偷拍| 久久精品免费| 亚洲青涩在线| 亚洲欧美国产另类|