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); //设置模型 } }
运行结果:
相关文章推荐
- Introduction to Java Programming编程题3.22<判断点是否在矩形内>
- java 垃圾回收总结(1)
- Spring Side3的安全框架
- java中使用akka手记三 cluster详例
- Java面向对象---多态
- Spring源码解析和配置文件加载
- java异常处理
- 利用jdk6中Annotation将XML与对象之间互相转化(一)
- Java的Timer和TimerTask
- Introduction to Java Programming编程题3.27<判断点是否在三角形内>
- 关于java中split的使用
- eclipse 搭建activiti5.17项目生成流程过程
- java实现String,date,timestamp相互转换
- Eclipse Java注释模板设置详解
- Java 四舍五入保留小数点后两位
- MyEclipse中使用JUnit进行单元测试
- Java复习笔记:Java中的sleep()和wait()的区别
- Java面向对象--封装
- Java阻塞队列的实现
- java图形验证码生成工具类