程序名称:FilesList.java
程序内容:
package gui;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileFilter;
import java.text.SimpleDateFormat;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
/**
* 文件过滤器
* @author web
*
*/
public class FilesList {
public static void main(String[] args) {
new FilesListJFrame();
}
}
class FilesListJFrame extends JFrame {
/**
*
*/
private static final long serialVersionUID = -6054613573073543311L;
static JTextField tf = null;
static JTable table = null;
static JScrollPane js =null;
public FilesListJFrame() {
setTitle("文件过滤器");
setSize(500, 500);
setLocation(550, 300);
setResizable(false);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container container = getContentPane();
JPanel jp = new JPanel();
JLabel jl = new JLabel("请输入文件扩展名:");
tf = new JTextField(10);
JButton button = new JButton("选择文件夹");
jp.add(jl);
jp.add(tf);
jp.add(button);
container.add(jp, BorderLayout.NORTH);
table = new JTable(0, 3);
table.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
js = new JScrollPane(table);
container.add(js, BorderLayout.CENTER);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
do_button_actionPerformed(e);
}
});
setVisible(true);
}
/**
* 按钮的处理方式
* @param e
*/
protected void do_button_actionPerformed(ActionEvent e){
String fileType = tf.getText();
File[] listFiles = null;
if(fileType.isEmpty()) {
JOptionPane.showMessageDialog(this, "请输入文件类型(扩展名)!", "", JOptionPane.WARNING_MESSAGE);
return;
}
JFileChooser chooser = new JFileChooser(); //定义文件选择器
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); //设置选择模式 - 仅显示目录
chooser.setMultiSelectionEnabled(false); //禁止多选
int re = chooser.showOpenDialog(this); //打开文件选择器
if(re == JFileChooser.CANCEL_OPTION) return;
if(re == JFileChooser.APPROVE_OPTION) {
/*
* 判断路径名是否以 给定的文件扩展名结尾,返回文件名.
*/
listFiles = chooser.getSelectedFile().listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.getName().endsWith(fileType)) {
return true;
} else {
return false;
}
}
});
}
DefaultTableModel model = (DefaultTableModel)table.getModel(); //表格模型
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //格式化日期
for(File file : listFiles) {
String name = file.getName(); //文件名
long size = file.length(); //大小
String date = format.format(new java.util.Date(file.lastModified())); //日期
model.addRow(new String[] {name, "" + size + " byte"+ "(" + size/1024/1024 + " M)", date}); //向模型添加数据
}
table.setModel(model); //设置模型
}
}
运行结果: