文件搜索

[size=medium]1.文件搜索要实现的功能:输入路径,显示路径下的文件;输入文件(文件夹)名,在相应的磁盘中寻找该文件(文件夹)。
2.用到的新组件:滚动条JScrollPane,文本显示框JTextArea
3.重点词:File
4.关键代码:
(1)设置显示面板。基本步骤与前几篇提到的相同。关于JScrollPane和JTextArea:[/size]
   //显示文本框
JTextArea jta=new JTextArea(20,25);//需要在此处申明大小,否则滚动条加不上去
//滑动条(jta:由滚动条控制;JScrollPane.VERTICAL_SCROLLBAR_ALWAYS:垂直滚动条一直显示;JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS:水平滚动条一直显示)
JScrollPane jsp=new JScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

[size=medium](2)查找文件的方法:
~1.显示是否找到文件(文件夹)[/size]
//p2用来判断是否找到文件,找到文件,改变p2的值
private static String p2="xx";

  if(p2=="xx") {
JLabel jlb1=new JLabel("此个路径中没有此文件");
jf.add(jlb1);
}

[size=medium] ~2.在文件(文件夹)中查找文件[/size]
     /**
* 搜索方法,输入文件所在大概路径,输入查找的文件名
* @param path 路径
* @param name 文件名
*/
public void showsearch(String path,String name){
File file=new File(path);
//为文件夹
if(file.isDirectory()){
p1=file.getName();
p=file.getAbsolutePath();
//如果文件夹的名字与所查找的名字一样,显示文件所在路径,并改变p2的值
if(p1.equals(name)){
JLabel jlb1=new JLabel("找到了!!!在这个路径中:"+p);
jf.add(jlb1);
p2="sss";
}
//将文件夹内的路径显示在文本区中
jta.append(p+"\n\t");
//文件类型的数组
File[] fileline=file.listFiles();
//用于查找文件夹内部的文件(文件夹)
for(int i=0;i<fileline.length;i++){
//内部不必在此写p,否则会重复,因为在下一次循环中,for的外部会写出
//递归
showsearch(fileline[i].getAbsolutePath(),name);
}
}
//为文件
else {
p1=file.getName();
p=file.getAbsolutePath();
//如果文件名与所查找名字一样
if(p1.equals(name)) {
JLabel jlb1=new JLabel("找到了!!!在这个路径中:"+p);
jf.add(jlb1);
//改变p2的值
p2="45433r";
}
//将文件的路径显示在文本区中
jta.append(p+"\n\t");
}
//如果输入的不是绝对路径
if(!file.isAbsolute()){
JLabel jlb2=new JLabel("没有这条路径");
jf.add(jlb2);
}
jf.setVisible(true);
}

[size=medium] ~3.关于传参(构造函数)
主面板中:[/size]
//监听器
Search search=new Search(jta,jf,tf1,tf2);

[size=medium] Search类中:[/size]
	private JFrame jf;
private JTextArea jta;
private TextField tf1,tf2;
public Search(JTextArea jta,JFrame jf,TextField tf1,TextField tf2){
this.jf=jf;
this.tf1=tf1;
this.tf2=tf2;
this.jta=jta;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值