我想实现的功能是在文本框里输入想要查找的文本的路径和文件类型,然后在命令窗口里显示
老提示错误 跪求大神指导
import javax.swing.*; 
import java.awt.FlowLayout;
import java.awt.event.*;
import java.io.File;
import java.io.FilenameFilter;
class FileWindow extends JFrame implements ActionListener{ 
JTextField diretext,typetext;
JLabel direlabel,typelabel; 
public String dir,type;
File file;
public String[] filename;
FileWindow(String s){
setTitle(s);
diretext = new JTextField(10); 
diretext.addActionListener(this);
typetext = new JTextField(10);
typetext.addActionListener(this);
direlabel =new JLabel("请输入文件夹目录:");
typelabel =new JLabel("请输入文件类型: ");
setLayout(new FlowLayout());
add(direlabel);
add(diretext);
add(typelabel);
add(typetext);
setVisible(true);
setBounds(10,10,200,200);
validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==diretext){
this.dir=diretext.getText().trim();
System.out.println(dir);
File file=new File(dir);
}
else{
this.type=typetext.getText().trim();
System.out.println(type);
String[] filename =file.list(new FileAccept(type) );
}
}
}
class FileAccept implements FilenameFilter{
String str;
FileAccept(String s){
str="."+s;
}
public boolean accept(File dir,String name){
return name.endsWith(str);
}
}
public class FileWin { public static void main(String[] args) {
// TODO Auto-generated method stub
FileWindow filewindow=new FileWindow ("测试程序");
//String s1="D:\\";
//File file=new File();
//String[] filename=filewindow.file.list(new FileAccept(filewindow.type) );
if(filewindow.filename==null){
System.out.println("没有此类文件");
}
else{
for(int i=0;i<filewindow.filename.length;i++){
System.out.println(filewindow.filename[i]);
}
}
}
}

解决方案 »

  1.   

    已经帮你修改过来了代码:import javax.swing.*;
    import java.awt.FlowLayout;
    import java.awt.event.*;
    import java.io.File;
    import java.io.FilenameFilter;class FileWindow extends JFrame implements ActionListener
    {
    JTextField diretext = new JTextField("");
    JTextField typetext = new JTextField("");
    JLabel direlabel, typelabel;
    public String dir, type;
    File file;
    public static String[] filename;//储存文件名 FileWindow(String s)
    {
    setTitle(s);//标题
    diretext = new JTextField(10);
    diretext.addActionListener(this);
    typetext = new JTextField(10);
    typetext.addActionListener(this);
    direlabel = new JLabel("请输入文件夹目录:");
    typelabel = new JLabel("请输入文件类型: ");
    setLayout(new FlowLayout());
    add(direlabel);
    add(diretext);
    add(typelabel);
    add(typetext);
    setVisible(true);
    setBounds(10, 10, 200, 200);

    validate();
    } public void actionPerformed(ActionEvent e)
    {
    if (diretext.getText().equals("") == false && typetext.getText().equals("") == false)
    {
    this.dir = diretext.getText().trim();
    System.out.println(dir);
    this.file = new File(dir);

    this.type = typetext.getText().trim();
    System.out.println(type);
    this.filename = file.list(new FileAccept(type));//储存文件名

    for (int i = 0; i < this.filename.length; i++)
    {
    System.out.println(this.filename[i]);
    }
    }
    else
    {
    System.out.println("请把路径和文件类型都正确填写");
    }
    }
    }class FileAccept implements FilenameFilter
    {
    String str; FileAccept(String s)
    {
    str = "." + s;
    } public boolean accept(File dir, String name)
    {
    return name.endsWith(str);
    }
    }public class FileWin
    { public static void main(String[] args)
    {
    // TODO Auto-generated method stub
    FileWindow filewindow = new FileWindow("测试程序");
    // String s1="D:\\";
    // File file=new File();
    // String[] filename=filewindow.file.list(new
    // FileAccept(filewindow.type) );
    // if (filewindow.filename == null)
    // {
    // System.out.println("没有此类文件");
    // }
    // else
    // System.out.println(FileWindow.filename == null);
    // if(FileWindow.filename != null)
    // {
    //
    // for (int i = 0; i < FileWindow.filename.length; i++)
    // {
    // System.out.println(FileWindow.filename[i]);
    // }
    // }
    }
    }