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
分享到:
相关推荐
java实现根据关键字查找文件夹里面的包含关键字的文件
Java模拟的DOS文件系统,内存模拟文件或目录的创建,删除,复制,查找,编辑.
JAVA 1.6实现的本地文件搜索系统-支持office pdf autocad等格式 java 文件检索 搜索 word excel ppt xls pdf autocad http操作控制 windows 2003 search index不好用,自娱自乐写了一个。 只提供使用,源码出售另请...
采用三大框架技术,用到了流行的ajax技术,有需要的朋友来看看
自己写的基于java的局域网文件管理系统,比较粗略 有下载,删除,重命名,查找等功能,CS模式
好完整的代码,自动识别字符集,大家不妨看看
纯java编写的操作系统,很好的。功能基本实现了操作系统功能,并且代码设计的很美观。
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
基于Java的文档在线检索预览系统,支持office,txt,pdf等文件的主流办公文件的全文检索,以及在线展示,一处维护处处查看。应对的是某些企业文档较多,查找文档困难以及文档共享内容延迟的情况,解决个人文档版本内容...
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局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
可以实现对当前操作系统下的所有盘文件的查找 速度还可以 只能查找文件..要查找文件夹的话 把 文件名匹配判断的条件去掉就可以了..当然..不能直接RETURN了.... 第一次搜索的区域慢...当再次搜索当前区域的时候就...
编写一个简单的图书管理子系统。图书馆中需要存储书名,编号,作者、出版社,图书类型、存放位置、同名图书的存放位置等信息。 程序提供的基本管理功能有: 1)添加:即增加同名书的记录到图书馆。 2)修改:修改...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
<3>FrMain.java 该文件是主界面的封装类,定义并设置了主界面相关组件及显示效果,还定义了菜单栏 上面各菜单项的监听事件,有系统管理:修改管理员密码、退出,基本操作:添加新读者 、新书入库、借书、还书、续借、...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
wareDB(SQLServer2000数据库文件) <br>说明: 1.本软件分为用户端和管理端 用户端仅用户登录,可注册号码,密码找回,修改密码,充值,购买等等 管理端 管理员和业务员及超级管理员登录,管理员有一定...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
609. 在系统中查找重复文件 给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。一组重复的文件至少包括二个具有完全相同内容的文件。 输入列表...