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

逛奔的蝸牛

我不聰明,但我會很努力

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

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>
            亚洲伦理自拍| 一区二区精品国产| 欧美日韩四区| 欧美视频一区二区在线观看| 欧美日韩高清在线观看| 欧美日韩精品久久久| 欧美少妇一区二区| 国产精品自在在线| …久久精品99久久香蕉国产| 亚洲国产高清视频| 亚洲午夜精品在线| 久久福利一区| 亚洲韩日在线| 99精品国产在热久久下载| 亚洲亚洲精品三区日韩精品在线视频| 中国女人久久久| 久久青草欧美一区二区三区| 欧美激情视频网站| 国产农村妇女毛片精品久久麻豆| 伊人久久久大香线蕉综合直播 | 一区二区三区精品在线| 在线视频欧美日韩| 久久久噜噜噜久久狠狠50岁| 欧美三级韩国三级日本三斤| 国内一区二区在线视频观看| 一区二区久久| 欧美高潮视频| 欧美一级视频精品观看| 欧美日韩国产高清视频| 在线成人中文字幕| 西西裸体人体做爰大胆久久久| 欧美刺激性大交免费视频| 亚洲综合色在线| 欧美日韩国产成人在线免费| 在线成人免费观看| 亚洲欧美色婷婷| 亚洲精品美女在线观看播放| 久久久99免费视频| 国产精品亚洲欧美| 亚洲无线视频| 亚洲黑丝在线| 欧美高清成人| 亚洲激情电影在线| 奶水喷射视频一区| 久久国产主播| 狠狠色伊人亚洲综合成人| 久久成人一区| 亚洲欧美一区二区三区在线| 国产精品magnet| 中文在线一区| 99国产精品久久久| 欧美日韩亚洲一区二区| 一本色道久久加勒比88综合| 亚洲国产一区二区三区青草影视 | 欧美/亚洲一区| 午夜精彩视频在线观看不卡| 欧美三级网页| 亚洲一区二区3| av成人福利| 欧美日韩综合久久| 亚洲午夜久久久久久久久电影院 | 免费中文日韩| 亚洲精品极品| 亚洲人成网站在线观看播放| 欧美成人一品| 日韩视频免费在线| 亚洲美女视频在线观看| 欧美日韩视频在线一区二区观看视频| 日韩视频在线免费观看| 亚洲免费精品| 国产乱码精品一区二区三区不卡| 欧美亚洲三级| 久久精品国产精品亚洲综合| 一区二区三区在线免费观看| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久欧美中文字幕| 久久全球大尺度高清视频| 亚洲激情视频网| 亚洲人成人一区二区三区| 欧美日韩一二三区| 欧美影院久久久| 久久久欧美精品sm网站| 日韩一区二区高清| 午夜欧美电影在线观看| 亚洲国产高清在线| 中国女人久久久| 激情成人av在线| 亚洲精品专区| 国内外成人免费视频| 亚洲久久一区二区| 国产一区二区日韩| 亚洲精品中文在线| 伊人狠狠色j香婷婷综合| 亚洲欧洲日本mm| 国产日韩欧美三级| 亚洲精品网址在线观看| 国产网站欧美日韩免费精品在线观看| 欧美激情成人在线| 国产欧美一区二区三区久久人妖| 亚洲第一在线综合在线| 国产精品一区二区在线| 91久久国产自产拍夜夜嗨| 国产精品一区二区久久久| 亚洲第一精品久久忘忧草社区| 亚洲在线免费观看| 欧美成人国产一区二区| 欧美怡红院视频| 欧美人交a欧美精品| 久久久精品999| 欧美日韩在线视频一区| 欧美华人在线视频| 国产自产2019最新不卡| 一区二区三区欧美| 一本色道久久| 欧美高清视频一二三区| 玖玖玖免费嫩草在线影院一区| 国产精品红桃| 日韩视频永久免费| 亚洲看片免费| 欧美mv日韩mv国产网站| 美脚丝袜一区二区三区在线观看| 国产精品一区二区三区久久| 99精品视频免费全部在线| 99pao成人国产永久免费视频| 久久亚洲影院| 老司机一区二区三区| 国内精品久久久久影院薰衣草| 亚洲自拍偷拍色片视频| 午夜激情久久久| 国产乱子伦一区二区三区国色天香| 日韩午夜电影在线观看| 在线亚洲欧美| 欧美小视频在线观看| 中国av一区| 性欧美激情精品| 国产精品自拍三区| 性做久久久久久| 久久综合给合久久狠狠狠97色69| 国产精品老牛| 亚洲欧美国产77777| 欧美在线观看视频在线| 国产亚洲午夜| 久久久久久免费| 欧美黑人在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | 免费观看在线综合色| 欧美黄网免费在线观看| 亚洲国产专区校园欧美| 欧美jizzhd精品欧美巨大免费| 亚洲激情成人在线| 中文在线资源观看网站视频免费不卡| 欧美午夜视频网站| 亚欧成人精品| 欧美激情国产日韩精品一区18| 亚洲欧洲一级| 欧美性色视频在线| 久久精品国产精品亚洲| 亚洲国产精品成人一区二区| 中文国产成人精品久久一| 国产精品影音先锋| 久久一区中文字幕| 日韩视频一区二区在线观看| 久久www免费人成看片高清 | 最新国产成人在线观看| 亚洲精品免费在线观看| 欧美视频三区在线播放| 午夜精品一区二区在线观看| 欧美成人国产一区二区| 亚洲小视频在线| 黄色一区二区在线| 欧美日韩国产成人在线观看| 性欧美超级视频| 亚洲久久视频| 葵司免费一区二区三区四区五区| 日韩一二三在线视频播| 国产午夜精品在线| 欧美日韩精品一二三区| 久久一综合视频| 亚洲一区三区在线观看| 欧美二区在线看| 欧美一区二区在线免费观看 | 一区二区欧美视频| 激情欧美日韩| 国产精品人人做人人爽| 欧美成人亚洲成人日韩成人| 午夜国产一区| 在线一区日本视频| 亚洲欧洲精品一区二区| 久久综合伊人77777| 亚洲欧美日韩系列| 日韩手机在线导航| 亚洲国产精品一区二区尤物区| 国产欧美一区二区三区在线看蜜臀| 欧美激情一区二区三区高清视频| 欧美在线视频全部完| 亚洲欧美成人| 亚洲男女自偷自拍| 亚洲一品av免费观看| 日韩写真在线| 日韩午夜激情av|