您的位置:首页 > 编程语言 > Java开发

java代码--文件过滤器

2015-08-19 17:23 561 查看
程序名称: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);											//设置模型
}

}

运行结果:

 


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: