国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java窗體動(dòng)態(tài)加載磁盤文件的實(shí)現(xiàn)方法

Java窗體動(dòng)態(tài)加載磁盤文件的實(shí)現(xiàn)方法

2019-11-11 13:49java教程網(wǎng) JAVA教程

這篇文章主要介紹了Java窗體動(dòng)態(tài)加載磁盤文件的實(shí)現(xiàn)方法,需要的朋友可以參考下

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

思路如下:

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

復(fù)制代碼代碼如下:

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);// 設(shè)置滾動(dòng)條開始滾動(dòng)
            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()) {// 判斷是否是一個(gè)文件
                            Object[] property = new Object[3];
                            property[0] = i + 1;// 保存序號(hào)
                            property[1] = subFiles[i].getName();// 保存文件名
                            property[2] = "";
                            if (subFiles[i].isHidden()) {// 判斷是否是一個(gè)隱藏文件
                                property[2] = "隱藏文件";
                            }
                            model.addRow(property);// 向表格中添加記錄
                            table.setModel(model);// 更新表格
                        }
                        try {
                            Thread.sleep(100);// 線程休眠0.1秒實(shí)現(xiàn)動(dòng)態(tài)加載
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    progressBar.setIndeterminate(false);// 停止進(jìn)度條滾動(dòng)
                };
            }.start();

        }
    }

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

}

 

效果如圖:

Java窗體動(dòng)態(tài)加載磁盤文件的實(shí)現(xiàn)方法

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕日本一区二区 | 无码日韩精品一区二区免费 | 国产精品成人在线观看 | 成人综合视频在线 | 成人精品在线 | 午夜免费小视频 | 超碰人人爱 | 97超碰在线播放 | 国产免费av网站 | 一区二区三区在线播放 | 9191国产视频 | 鲁一鲁综合 | 亚洲欧美日韩一区 | 91精品国产欧美一区二区成人 | 在线观看成人 | 久久精品国产一区二区三区不卡 | 在线看国产 | 国内精品视频 | 1000部精品久久久久久久久 | 国产精品爱久久久久久久 | 欧美综合久久 | 在线观看日韩 | 亚洲一区二区 | 久久黄网 | 国产精品成人国产乱一区 | 免费黄色小视频 | 日本高清视频在线播放 | 国产精品极品美女在线观看免费 | 亚洲不卡在线 | 久久久久亚洲精品 | a视频在线| 国产精品亲子伦av一区二区三区 | 午夜影视 | 日本中文字幕在线免费观看 | 成人福利免费在线观看 | 91久久 | 91精品久久 | 色综合欧美 | 人人人射 | 久久精品日韩 | 婷婷综合色|