1.文件搜索要实现的功能:输入路径,显示路径下的文件;输入文件(文件夹)名,在相应的磁盘中寻找该文件(文件夹)。
2.用到的新组件:滚动条JScrollPane,文本显示框JTextArea
3.重点词:File
4.关键代码:
(1)设置显示面板。基本步骤与前几篇提到的相同。关于JScrollPane和JTextArea:class="java" name="code"> //显示文本框
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);
(2)查找文件的方法:
~1.显示是否找到文件(文件夹)
//p2用来判断是否找到文件,找到文件,改变p2的值
private static String p2="xx";
if(p2=="xx") {
JLabel jlb1=new JLabel("此个路径中没有此文件");
jf.add(jlb1);
}
~2.在文件(文件夹)中查找文件 /**
* 搜索方法,输入文件所在大概路径,输入查找的文件名
* @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);
}
~3.关于传参(构造函数)
主面板中: //监听器
Search search=new Search(jta,jf,tf1,tf2);
Search类中:
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;
}
- 大小: 97.8 KB