`

java文件查找系统

阅读更多
java文件查找
java文件查找的实现,简单易学,这是查找界面以及主函数代码:
package 大二lesson04;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class FileIO {
	public static JTextField jt1,jt2;
	public static JTextArea jt3; 
	public void Find(String filename){
			FileThread ft = new FileThread(filename, jt1, jt2, jt3);
			ft.start();
	}	
	public static void main(String[] args) {
		//调用方法
		new FileIO().intUI();
	}
	//界面方法
	public void intUI(){
		//创建一个JFrame对象
		JFrame jf =new JFrame("文件查找系统");
		//设置大小
		jf.setSize(1000,600);
		//设置界面大小不可改
		jf.setResizable(false);
		//将窗体设置在界面的中间出现
		jf.setLocationRelativeTo(null);
		//点击关闭按钮时,程序完全关闭,不在后台执行
		jf.setDefaultCloseOperation(3);
		//设置jf的布局,其默认是边框布局,即下面的语句可以省略
		jf.setLayout(new BorderLayout());
		//创建一个JPanel对象
		JPanel jp1 = new JPanel();
		//设置面板大小
		jp1.setPreferredSize(new Dimension(0,60));
		JPanel jp2 = new JPanel();
		//设置面板的布局为边框布局,面板的默认布局是流式布局
		jp2.setLayout(new BorderLayout());
		JButton start =new JButton("开始查找(Enter)");//开始按钮
		JButton delete =new JButton("清空(Delete)");//开始按钮
		start.setPreferredSize(new Dimension(300,30));
		delete.setPreferredSize(new Dimension(300,30));
		
		JLabel jl2 = new JLabel("输入查找的后缀名eg:.txt(不输入则表示查找整个路径的内容):");//标签
		JLabel jl1 = new JLabel("输入你要查找的路径(eg:"+"F:\\"+"):");
		JLabel jl3 = new JLabel("CT出品必属精品");
		//创建一个JTextField并设置了长度
		jt1=new JTextField(20);
		jt2=new JTextField(3);
		//设置下面的显示文本框的大小
		jt3 =new JTextArea(24,82);
		jt3.addKeyListener(new KeyListener() {
			 
			public void keyReleased(KeyEvent e) {
				if(e.getKeyChar()==KeyEvent.VK_ENTER){
					jt3.setText(null);
					//调用查找方法
					Find(jt1.getText());
				}
				if(e.getKeyChar()==KeyEvent.VK_DELETE){
					jt3.setText(null);
				}
			}
			public void keyPressed(KeyEvent e) {
			}
			public void keyTyped(KeyEvent e) {
				
			}
		});//实现键盘监听器
		//设置文本框中的字体
		jt3.setFont(new Font(null, Font.BOLD,15));
		//改变光标
//		jt3.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
//		jt3.setFont(new Font("宋体",Font.PLAIN,16));
		//设置文本框中的颜色
		jt3.setBackground(Color.PINK);
		//给文本框添加滚动条
		JScrollPane jsp=new JScrollPane(jt3);
		//设置文本框为只读
		jt3.setEditable(false);
		jp1.add(jl1);//把组件添加入面板
		jp1.add(jt1);
		jp1.add(jl2);
		jp1.add(jt2);
		jp1.add(jl3);
		jp1.add(start);
		jp1.add(delete);
		jp2.add(jsp,BorderLayout.CENTER);
		//把面板添加入窗体
		jf.add(jp1,BorderLayout.NORTH);
		jf.add(jp2,BorderLayout.CENTER);
		//给按钮添加监听器
		start.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent e) {
				jt3.setText(null);
				//调用查找方法
				Find(jt1.getText());
			}
		});
		delete.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent e) {
				jt3.setText(null);
			}
		});
		
		//使窗体可见
		jf.setVisible(true);
	}
	
	
}


这是查找的线程代码,实现边查找边显示:
package 大二lesson04;

import java.io.File;

import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;


public class FileThread extends Thread{
	public JTextField jt1,jt2;
	public JTextArea jt3; 
	public String filename;
	public FileThread(String filename,JTextField jt1,JTextField jt2,JTextArea jt3){
		this.filename=filename;
		this.jt1 = jt1; 
		this.jt2 = jt2; 
		this.jt3 = jt3; 
		
	}
	public void run(){
		this.find(filename);
		JOptionPane.showMessageDialog(null, "         查找结束!!", "警告", 1);
	}
	public void find(String filename){
		File f=new File(filename);
		//将f的子目录中的文件存入File[]中
		File[] files=f.listFiles();
		if(filename.isEmpty()) JOptionPane.showMessageDialog(null, "      您输入的路径不合法!!", "警告", 2);
		if(files!=null){
			for(int i =0;i<files.length;i++){
				//获取路径名,并存储起来
				String name = files[i].getAbsolutePath();
				//判断文件是否以jt2.getText()结尾
				if(name.endsWith(jt2.getText()))
					jt3.append(files[i].getAbsolutePath()+"\n");
				else if(jt2.getText().isEmpty())
					jt3.append(files[i].getAbsolutePath()+"\n");
//					jt3.paintImmediately(jt3.getBounds());
//				 	jt3.paintImmediately(jt3.getX(), jt3.getY(), jt3.getWidth(), jt3.getHeight()); 
				if(files[i].isDirectory())
					find(files[i].getAbsolutePath());
			}
			
		}
		
	}
}



之前匆匆实现,没有加上线程,使得查找的过程无法看,真是不好意思,现在加上了线程实现了边查边显示,并且加上了键盘监听器,在激活窗体的前提下,可以通过指定按钮操作。欢迎之前看过的游客再次光临!大家还有什么想法都可以留言,我会吸收广大同志的意见,做出更好的东西来!
  • 大小: 99.6 KB
分享到:
评论
1 楼 longhua2003 2014-11-12  

相关推荐

    java实现根据关键字查找所在文件夹的文件

    java实现根据关键字查找文件夹里面的包含关键字的文件

    Java模拟DOS文件系统

    Java模拟的DOS文件系统,内存模拟文件或目录的创建,删除,复制,查找,编辑.

    JAVA 1.6实现的本地文件搜索系统-支持office pdf autocad等格式

    JAVA 1.6实现的本地文件搜索系统-支持office pdf autocad等格式 java 文件检索 搜索 word excel ppt xls pdf autocad http操作控制 windows 2003 search index不好用,自娱自乐写了一个。 只提供使用,源码出售另请...

    java资源管理系统

    采用三大框架技术,用到了流行的ajax技术,有需要的朋友来看看

    基于java的局域网文件管理系统

    自己写的基于java的局域网文件管理系统,比较粗略 有下载,删除,重命名,查找等功能,CS模式

    在系统中文件查找java代码

    好完整的代码,自动识别字符集,大家不妨看看

    纯java编写的操作系统

    纯java编写的操作系统,很好的。功能基本实现了操作系统功能,并且代码设计的很美观。

    java源码包2

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    基于Java的文档在线检索预览系统源码.zip

    基于Java的文档在线检索预览系统,支持office,txt,pdf等文件的主流办公文件的全文检索,以及在线展示,一处维护处处查看。应对的是某些企业文档较多,查找文档困难以及文档共享内容延迟的情况,解决个人文档版本内容...

    JAVA酒店管理系统+源码

    JAVA酒店管理系统+源码。 主要实现的功能有:添加预订,修改预订,查找预订,发送确认邮件,添加房价类型,修改房价类型,查找房价类型,删除房价类型,查询每⽇日房价,添加房价规则,修改房价规则,查找房价规则,...

    java学生成绩管理系统

    录入查找删除修改排序 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.table.AbstractTableModel; import java.io.*; import java.util.*; ...

    java源码包---java 源码 大量 实例

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    硬盘文件查找 (java版代码)

    可以实现对当前操作系统下的所有盘文件的查找 速度还可以 只能查找文件..要查找文件夹的话 把 文件名匹配判断的条件去掉就可以了..当然..不能直接RETURN了.... 第一次搜索的区域慢...当再次搜索当前区域的时候就...

    Java图书管理系统.txt

    编写一个简单的图书管理子系统。图书馆中需要存储书名,编号,作者、出版社,图书类型、存放位置、同名图书的存放位置等信息。 程序提供的基本管理功能有: 1)添加:即增加同名书的记录到图书馆。 2)修改:修改...

    JAVA上百实例源码以及开源项目

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    JAVA图书馆管理系统课程设计报告.doc

    &lt;3&gt;FrMain.java 该文件是主界面的封装类,定义并设置了主界面相关组件及显示效果,还定义了菜单栏 上面各菜单项的监听事件,有系统管理:修改管理员密码、退出,基本操作:添加新读者 、新书入库、借书、还书、续借、...

    java源码包4

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    java商品购物系统

    wareDB(SQLServer2000数据库文件) &lt;br&gt;说明: 1.本软件分为用户端和管理端 用户端仅用户登录,可注册号码,密码找回,修改密码,充值,购买等等 管理端 管理员和业务员及超级管理员登录,管理员有一定...

    java源码包3

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    Java实现 LeetCode 609 在系统中查找重复文件(阅读理解+暴力大法)

    609. 在系统中查找重复文件 给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。一组重复的文件至少包括二个具有完全相同内容的文件。 输入列表...

Global site tag (gtag.js) - Google Analytics