亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

Java窗體動態加載磁盤文件的實現方法

2019-11-26 15:38:48
字體:
來源:轉載
供稿:網友

在使用圖形界面操作系統時,當打開一個文件夾系統會自動列出該文件夾下的所有文件及子文件夾。本實例實現了類似的功能:首先讓用戶選擇一個文件夾,程序會動態列出該文件夾下的所有文件;如果該文件是隱藏文件,就在屬性欄中顯示“隱藏文件”。要用到進度條來表示是否完成。

思路如下:

首先是視圖層。JTextField、JButton、JScrollPane、JTable神馬的就不用再提了,都是老盆友了,在這里因為要用到進度條,所以會有一個新盆友:JProgressBar控件??丶冏匀皇且鳛槌蓡T變量創建對象的,此外還要有File型成員變量來代表選中的文件夾。
這個實例只涉及了一個控件的事件,那就是選擇文件夾按鈕。在它的事件里,選擇文件夾及列出信息神馬的都是老生常談了,關鍵是JProgressBar控件的用法。在用戶選擇文件夾后,使用JProgressBar控件的setIndeterminate(true)方法設置滾動條開始滾動;在文件信息顯示完畢后,再通過JProgressBar控件的setIndeterminate(false)方法停止滾動條的滾動。
代碼如下:

復制代碼 代碼如下:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.UIManager;

public class FileListFrame extends JFrame {

    /**
     *
     */
    private static final long serialVersionUID = -615665572894071265L;
    private JPanel contentPane;
    private JTextField chooseTextField;
    private JButton chooseButton;
    private JScrollPane scrollPane;
    private JTable table;
    private JProgressBar progressBar;
    private File chooseFile;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Throwable e) {
            e.printStackTrace();
        }
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    FileListFrame frame = new FileListFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public FileListFrame() {
        setTitle("/u7A97/u4F53/u52A8/u6001/u52A0/u8F7D/u78C1/u76D8/u6587/u4EF6");
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowActivated(WindowEvent arg0) {
                do_this_windowActivated(arg0);
            }
        });
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(new BorderLayout(0, 0));

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.NORTH);

        chooseTextField = new JTextField();
        panel.add(chooseTextField);
        chooseTextField.setColumns(13);

        chooseButton = new JButton("/u9009/u62E9/u6587/u4EF6/u5939");
        chooseButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                do_chooseButton_actionPerformed(arg0);
            }
        });
        panel.add(chooseButton);

        progressBar = new JProgressBar();
        panel.add(progressBar);

        scrollPane = new JScrollPane();
        contentPane.add(scrollPane, BorderLayout.CENTER);

        table = new JTable();
        scrollPane.setViewportView(table);
    }

    protected void do_chooseButton_actionPerformed(ActionEvent arg0) {
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        fileChooser.setMultiSelectionEnabled(false);
        int result = fileChooser.showOpenDialog(this);
        if (result == JFileChooser.APPROVE_OPTION) {
            chooseFile = fileChooser.getSelectedFile();// 獲得用戶選擇的文件夾
            chooseTextField.setText(chooseFile.getAbsolutePath());// 顯示用戶選擇的文件夾
            progressBar.setIndeterminate(true);// 設置滾動條開始滾動
            final File[] subFiles = chooseFile.listFiles();// 獲得用戶選擇的文件夾中的所有文件(夾)
            final DefaultTableModel model = (DefaultTableModel) table.getModel();
            model.setRowCount(0);// 清空表格
            new Thread() {// 開始新的線程
                public void run() {
                    for (int i = 0; i < subFiles.length; i++) {// 遍歷用戶選擇的文件夾
                        if (subFiles[i].isFile()) {// 判斷是否是一個文件
                            Object[] property = new Object[3];
                            property[0] = i + 1;// 保存序號
                            property[1] = subFiles[i].getName();// 保存文件名
                            property[2] = "";
                            if (subFiles[i].isHidden()) {// 判斷是否是一個隱藏文件
                                property[2] = "隱藏文件";
                            }
                            model.addRow(property);// 向表格中添加記錄
                            table.setModel(model);// 更新表格
                        }
                        try {
                            Thread.sleep(100);// 線程休眠0.1秒實現動態加載
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    progressBar.setIndeterminate(false);// 停止進度條滾動
                };
            }.start();

        }
    }

    protected void do_this_windowActivated(WindowEvent arg0) {
        DefaultTableModel model = (DefaultTableModel) table.getModel();
        model.setColumnIdentifiers(new Object[] { "序號", "文件名", "屬性" });
    }

}

效果如圖:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久电影一区| 欧美精品第一页在线播放| 国产视频精品一区二区三区| www国产亚洲精品久久网站| 亚洲一区二区三区在线免费观看| 久久久久久高潮国产精品视| 日本成人黄色片| 北条麻妃一区二区三区中文字幕| 亚洲精品影视在线观看| 欧美区在线播放| 精品福利视频导航| 日韩av在线导航| 欧美—级a级欧美特级ar全黄| 亚洲第一免费网站| 欧美成人激情在线| 亚洲男人7777| 亚洲国产精品视频在线观看| 国产综合福利在线| 欧美日韩国产第一页| 国产亚洲精品久久久优势| 欧美高清第一页| 在线播放国产一区中文字幕剧情欧美| 91精品国产91久久久久| 久久99视频精品| 欧美亚洲国产视频| 日韩免费av片在线观看| 亚洲欧美日韩中文在线| 精品自拍视频在线观看| 久久久亚洲欧洲日产国码aⅴ| 国产福利视频一区二区| 日韩av在线影院| 成人网在线观看| 欧美性猛交xxxx乱大交| 久久视频精品在线| 永久555www成人免费| 亚洲欧美精品一区二区| 日本中文字幕成人| 色婷婷av一区二区三区在线观看| 97色在线视频| 久久成人精品视频| 国产精品一区二区在线| 久久精品亚洲国产| 91精品中文在线| 欧美国产日韩精品| 欧美大片在线看| 麻豆国产va免费精品高清在线| 国产精品美乳在线观看| 成人免费在线网址| 17婷婷久久www| 97久久精品在线| 日韩资源在线观看| 欧美视频在线免费| 久久久久久久久久久久av| 日本免费在线精品| 最近2019中文字幕大全第二页| 日韩在线精品视频| 国产女人18毛片水18精品| 成人免费网站在线看| 中文字幕亚洲二区| 精品毛片三在线观看| 亚洲国产小视频在线观看| 欧美日韩aaaa| 第一福利永久视频精品| 国产一区二区三区日韩欧美| 欧美中文在线视频| 国产精品网红福利| 国产精品a久久久久久| 最近免费中文字幕视频2019| 久久久久久免费精品| 亚洲a区在线视频| 精品国产一区二区三区在线观看| 91精品国产综合久久久久久蜜臀| 国产精品福利网站| 欧美野外猛男的大粗鳮| 久久久久久久久综合| 国产成人精品一区| 91日本在线视频| 欧美中文字幕在线视频| 欧美自拍视频在线观看| www国产亚洲精品久久网站| 亚洲国产精久久久久久| 久久伊人91精品综合网站| 欧美中文字幕第一页| 福利视频导航一区| 日韩久久精品成人| 亚洲国产成人在线视频| 国产成+人+综合+亚洲欧洲| 日韩精品免费在线| 欧美精品性视频| 精品久久久国产| 九九精品在线观看| 国产精品96久久久久久| 日韩av在线看| 久久视频免费在线播放| 亚洲色图五月天| 国产成人在线一区二区| 亚洲视频在线免费看| 欧美影院在线播放| 日韩高清a**址| 亚洲一级免费视频| 欧美成人性色生活仑片| 国产精品久久久久久影视| 久久精品99国产精品酒店日本| 97视频在线观看免费高清完整版在线观看| 午夜精品久久久久久久99热浪潮| 国产日本欧美视频| 一区二区av在线| 日韩欧美在线国产| 久久夜色精品亚洲噜噜国产mv| 色天天综合狠狠色| 国产成人啪精品视频免费网| 日韩电影中文字幕在线观看| 亚洲色图17p| 91在线网站视频| 成人黄色在线免费| 欧美亚洲成人精品| 亚洲国产日韩欧美在线动漫| 欧美激情一区二区三级高清视频| 久久精品久久久久久国产 免费| 亚洲一区二区久久久久久| 亚洲最大成人网色| 亚洲影视九九影院在线观看| 国产精品69久久久久| 日韩中文字幕在线播放| 日韩电影在线观看永久视频免费网站| 精品福利在线看| 欧美激情精品久久久久久久变态| 国产日本欧美一区二区三区| 久久天天躁狠狠躁夜夜躁2014| 亚洲韩国日本中文字幕| 日韩在线播放av| 亚洲福利在线播放| 欧美激情精品久久久久久蜜臀| 亚洲黄色有码视频| 亚洲**2019国产| 国产欧美日韩丝袜精品一区| 亚洲精品一二区| 日韩电影在线观看永久视频免费网站| 国产一区二区美女视频| 韩剧1988在线观看免费完整版| 亚洲欧美中文在线视频| 亚洲综合大片69999| 国产精品久久激情| 欧美高清不卡在线| 欧美另类xxx| 国产日韩欧美在线观看| 91精品国产成人www| 色中色综合影院手机版在线观看| 日韩欧美国产成人| 亚洲国产精品久久久久久| 国产精品美女视频网站| 久久91亚洲人成电影网站| 精品国产老师黑色丝袜高跟鞋| 国产精品jvid在线观看蜜臀| 亚洲天堂男人的天堂| 欧美孕妇毛茸茸xxxx| 97碰碰碰免费色视频| 国产a级全部精品| 懂色av影视一区二区三区| 国产日韩欧美日韩大片| 永久免费毛片在线播放不卡| 精品毛片三在线观看| 97精品久久久| 亚洲999一在线观看www|