实现:读取文件夹指定类型的文件,并显示到表格控件中。

应用:对于项目开发中的文件分类起到了抛砖引玉的作用。

效果图


实现代码

package com.lixiyu;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.sql.Date;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;
import javax.swing.table.DefaultTableModel;
public class ListCustomTypeFile extends JFrame {/****/private static final long serialVersionUID = -6263975104443132420L;/*** 自定义扩展名过滤器** @author DylanLee*/private final class CustomFilter implements java.io.FileFilter {@Overridepublic boolean accept(File pathname) {// 获取用户设置的指定扩展名String extName = extNameField.getText();if (extName == null || extName.isEmpty())return false;if (!extName.startsWith("."))// 判断扩展名前缀extName = "." + extName;// 完事扩展名前缀extName = extName.toLowerCase();// 判断扩展名与过滤文件名是否符合要求if (pathname.getName().toLowerCase().endsWith(extName))return true;return false;}}private JPanel contentPane;private JTextField extNameField;private JTable table;private File dir;private JLabel label;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {ListCustomTypeFile frame = new ListCustomTypeFile();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public ListCustomTypeFile() {setTitle("\u663E\u793A\u6307\u5B9A\u7C7B\u578B\u7684\u6587\u4EF6");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));contentPane.setLayout(new BorderLayout(0, 0));setContentPane(contentPane);JPanel panel = new JPanel();contentPane.add(panel, BorderLayout.NORTH);GridBagLayout gbl_panel = new GridBagLayout();gbl_panel.columnWidths = new int[] { 93, 54, 0 };gbl_panel.rowHeights = new int[] { 23, 0, 0 };gbl_panel.columnWeights = new double[] { 0.0, 1.0, Double.MIN_VALUE };gbl_panel.rowWeights = new double[] { 0.0, 0.0, Double.MIN_VALUE };panel.setLayout(gbl_panel);JButton button = new JButton("\u9009\u62E9\u6587\u4EF6\u5939");button.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {do_button_actionPerformed(e);}});GridBagConstraints gbc_button = new GridBagConstraints();gbc_button.anchor = GridBagConstraints.NORTH;gbc_button.gridx = 0;gbc_button.gridy = 0;panel.add(button, gbc_button);label = new JLabel("\u6587\u4EF6\u5939");GridBagConstraints gbc_label = new GridBagConstraints();gbc_label.fill = GridBagConstraints.HORIZONTAL;gbc_label.gridx = 1;gbc_label.gridy = 0;panel.add(label, gbc_label);JLabel label_1 = new JLabel("\u8F93\u5165\u6307\u5B9A\u6587\u4EF6\u6269\u5C55\u540D\u79F0\uFF1A");GridBagConstraints gbc_label_1 = new GridBagConstraints();gbc_label_1.anchor = GridBagConstraints.EAST;gbc_label_1.insets = new Insets(0, 0, 0, 5);gbc_label_1.gridx = 0;gbc_label_1.gridy = 1;panel.add(label_1, gbc_label_1);extNameField = new JTextField();extNameField.addCaretListener(new CaretListener() {public void caretUpdate(CaretEvent e) {do_extNameField_caretUpdate(e);}});extNameField.setText(".gif");GridBagConstraints gbc_extNameField = new GridBagConstraints();gbc_extNameField.insets = new Insets(0, 0, 5, 0);gbc_extNameField.fill = GridBagConstraints.HORIZONTAL;gbc_extNameField.gridx = 1;gbc_extNameField.gridy = 1;panel.add(extNameField, gbc_extNameField);extNameField.setColumns(10);JScrollPane scrollPane = new JScrollPane();contentPane.add(scrollPane, BorderLayout.CENTER);table = new JTable();table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);table.setModel(new DefaultTableModel(new Object[][] {}, new String[] {"\u6587\u4EF6\u540D\u79F0", "\u6587\u4EF6\u5927\u5C0F","\u4FEE\u6539\u65E5\u671F" }) {/****/private static final long serialVersionUID = 5274214559103654856L;boolean[] columnEditables = new boolean[] { false, false, false };public boolean isCellEditable(int row, int column) {return columnEditables[column];}});table.getColumnModel().getColumn(0).setPreferredWidth(220);table.getColumnModel().getColumn(1).setPreferredWidth(85);table.getColumnModel().getColumn(2).setPreferredWidth(110);scrollPane.setViewportView(table);}/*** 选择文件夹按钮的事件处理方法** @param e*/protected void do_button_actionPerformed(ActionEvent e) {JFileChooser chooser = new JFileChooser();// 创建文件选择器// 设置选择器的过滤器chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);chooser.showDialog(this, null);dir = chooser.getSelectedFile();getLabel().setText(dir.toString());// 获取过滤后的符合条件的文件数组listFiles();}/*** 显示文件夹中的文件*/private void listFiles() {if (dir == null)return;// 获取符合条件的文件数组File[] files = dir.listFiles(new CustomFilter());// 获取表格的数据模型DefaultTableModel model = (DefaultTableModel) table.getModel();model.setRowCount(0);for (File file : files) {// 遍历文件数组// 创建表格行数据Object[] row = { file.getName(), file.length(),new Date(file.lastModified()) };model.addRow(row);// 添加行数据到表格模型}}protected void do_extNameField_caretUpdate(CaretEvent e) {listFiles();}protected JLabel getLabel() {return label;}
}

转载于:https://blog.51cto.com/lixiyu/1308355

JAVA实现显示指定类型的文件的例子相关推荐

  1. Java listFiles查找指定类型的文件简单做法

    在Java中获取指定类型的文件,可以用带参数的listFiles的来实现 在网上搜了一些方法,几乎都是新建一个实现FilenameFilter或者FileFilter的类,然后把它作为listFile ...

  2. linux 复制指定类型,用Linux命令行实现删除和复制指定类型的文件

    (一)Linux 删除当前目录及子目录中所有某种类型的文件 方法1 : 此方法不能处理目录中带空格的那些. rm -rf `find . -name "*.example"` Li ...

  3. 用Linux命令行实现删除和复制指定类型的文件

    (一)Linux 删除当前目录及子目录中所有某种类型的文件 方法1 : 此方法不能处理目录中带空格的那些. rm -rf `find . -name "*.example"` Li ...

  4. 设置日志不记录指定类型的文件,日志文件的切割,配置静态元素过期时间

    访问日志不记录指定类型的文件 修改虚拟主机配置文件 先不重新加载配置,测试访问jpg文件,是否记录日志 测试结果是还是记录了jpg文件的日志 -t graceful重新加载一次,就会发现不会记录jpg ...

  5. 上传文件时让弹窗显示指定格式的文件

    上传文件时让弹窗显示指定格式的文件 在上传文件时,点击"选择文件"按钮,默认打开的弹窗显示的是"所有文件": 有时候在打开弹窗后,我们希望只显示想要的某一种或某 ...

  6. php只显示指定文件类型_php强制下载指定类型的文件

    当需要将文件直接下载时,可以使用如下的函数来实现. 代码: 复制代码 代码示例: function downloadFile($file){ $file_name = $file; $mime = ' ...

  7. Java读取文件夹下的指定类型的文件(包含子文件夹)

    java如何获取文件下某种类型的文件呢,本文通过递归筛选实现此功能,代码如下: import java.io.File; import java.util.ArrayList; import java ...

  8. 遍历可执行文件所在目录下的指定类型的文件

    示例:遍历可执行文件目录下指定的txt类型的文件,编译环境vs2010,项目类型控制台输出程序: 代码实现: main.cpp // DocumentTraveral_demo.cpp : 定义控制台 ...

  9. mfc mysql 选择删除文件_MFC应用实例:[60]删除指定类型的文件

    双击"删除文件"按钮添加响应函数OnDelete(),在响应函数OnDelete()中添加一下代码: void CDeleteCertainFolderFileDlg::OnDel ...

  10. linux 移动某个文件夹及其所有子文件夹内指定类型的文件

    find /data/home/image1 -type f -iname "*.jpg" -exec mv --backup=numbered -t /data/home/ima ...

最新文章

  1. 用于改善质量、稳定性和多样性的可增长式GAN
  2. apache2.2配置php,PHP5+APACHE2.2配置_PHP教程
  3. 记一次被DDoS敲诈的历程
  4. 如何系统性掌握深度学习模型设计和优化
  5. MasterSlave是什么?
  6. vtk鼠标不交互_vtk 各种不同的鼠标交互方式
  7. js 正则 显示千分号 支持整数和小数
  8. afudos备份bios不动_bios刷坏后的两种解决方法
  9. MongoDB 如何使用内存?为什么内存满了?
  10. 信息学奥赛C++语言:百钱买百鸡
  11. flutter TabBar 底部导航栏
  12. Pandas——merge(合并)
  13. eclipse中如何远程java debug配置
  14. 交换机和路由器技术-28-OSPF的NSSA区域
  15. DIY激光枪薄纱蟑螂!AI杀蚊子博士新作,项目已开源
  16. 沐风老师ATilesPro for 3dMax屋顶设计插件使用教程
  17. 基于引擎开发HTML5游戏实战(一)---游戏引擎
  18. OnSysCommand( UINT nID, LPARAM lParam );分析
  19. 单片机控制一盏灯的亮与灭程序解释
  20. 2022春招各大厂高频面试题汇总

热门文章

  1. ThinkPHP5集成JS-SDK实现微信自定义分享功能
  2. 【matlab】:matlab中不断的出现计算过程怎么办
  3. Vim 经常使用快捷键及键盘图
  4. 2017.3.28杂感
  5. MVC4 code first 增加属性,对应自动修改列的方法笔记
  6. Java开发笔记(一百三十八)JavaFX的箱子
  7. SQL server int 转char类型
  8. Python代码书写规范
  9. DDD实战进阶第一波(一):开发一般业务的大健康行业直销系统(概述)
  10. 从输入URL到页面呈现经历了哪些?DOM文档加载的步骤?