/*这个题目是用Eclipse设计一文件搜索程序,可按以下步骤实现:
? 创建一窗口框架;
? 输入要搜索的文件名(全名);
? 输入要搜索的文件夹名;
? 按下按钮后,在指定文件夹内(包括所有子文件夹)搜索指定文件。
? 搜索成功则在窗口上显示文件的全路径名,否则显示没有找到指定文件
我做到这里就不会了,求哥哥们帮助。
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KongJian extends JFrame implements ActionListener
{
JTextField jtf1=new JTextField(20);
JTextField jtf2=new JTextField(30);
JLabel jl1=new JLabel("请输入要搜索的文件名:");
JLabel jl2=new JLabel("所搜索文件路径为:");
JButton jb=new JButton("搜索");
JPanel jp=new JPanel();
public KongJian()
{
this.setTitle("Java课程设计-钟冠新-李冠康制作");
jp.setLayout(null);
jl1.setBounds(30,20,200,30);
jp.add(jl1);
jtf1.setBounds(30,50,200,30);
jp.add(jtf1);
jl2.setBounds(30,90,200,30);
jp.add(jl2);
jtf2.setBounds(30,120,280,30);
jp.add(jtf2);
jb.setBounds(240,50,80,30);
jp.add(jb);
jb.addActionListener(this);
this.add(jp);
this.setBounds(300,250,350,250);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
}
public static void main(String atgs[])
{
KongJian kj=new KongJian();
}
}
------解决方案--------------------
只能搜索当前文件夹,如果要查子文件夹,自己修改一下:
- Java code
import java.awt.*;import java.awt.event.*;import java.io.File;import java.io.FilenameFilter;import javax.swing.*;public class KongJian extends JFrame implements ActionListener { JTextField jtf1 = new JTextField(20); JTextField jtf2 = new JTextField(30); JLabel jl1 = new JLabel("请输入要搜索的文件名:"); JLabel jl2 = new JLabel("所搜索文件路径为:"); JButton jb = new JButton("搜索"); JLabel ret ; JPanel jp = new JPanel(); public KongJian() { this.setTitle("Java课程设计-钟冠新-李冠康制作"); jp.setLayout(null); jl1.setBounds(30, 20, 200, 30); jtf1.setText("A.pdf") ; jp.add(jl1); jtf1.setBounds(30, 50, 200, 30); jp.add(jtf1); jl2.setBounds(30, 90, 200, 30); jtf2.setText("C:") ; jp.add(jl2); jtf2.setBounds(30, 120, 280, 30); jp.add(jtf2); jb.setBounds(240, 50, 80, 30); jp.add(jb); jb.addActionListener(this); this.add(jp); this.setBounds(300, 250, 350, 250); ret = new JLabel("搜索结果:" ) ; jp.add(ret); ret.setBounds(30, 150, 300, 30); this.setVisible(true); } public void actionPerformed(ActionEvent e) { System.out.println("AAA"); String str = FileRearch.rearch(jtf2.getText(), jtf1.getText()) ; ret.setText("搜索结果:" + str ) ; jp.repaint() ; } public static void main(String atgs[]) { KongJian kj = new KongJian(); }}class DirFilter implements FilenameFilter {// 过滤器 String afn; DirFilter(String afn) { this.afn = afn; } public boolean accept(File dir, String name) { // Strip path information: String f = new File(name).getName(); return f.indexOf(afn) != -1; }}class FileRearch { public static String rearch(String dir, String fName) { try { File path = new File(dir); String[] list; if (fName.length() == 0) list = path.list(); else list = path.list(new DirFilter(fName)); for (int i = 0; i < list.length; i++){ System.out.println(new File(list[i]).getAbsoluteFile().getAbsolutePath()) ; return (new File(list[i]).getAbsoluteFile().getAbsolutePath()) ; } } catch (Exception e) { e.printStackTrace(); } return "未找到文件" ; }}