当前位置:编程学习 > JAVA >>

求大神指导 本人写的一个小程序 出了点问题 找不到原因

我想实现的功能是在文本框里输入想要查找的文本的路径和文件类型,然后在命令窗口里显示
老提示错误 跪求大神指导
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]);
}
}
}
}
--------------------编程问答-------------------- 已经帮你修改过来了

代码:



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]);
// }
// }
}
}
--------------------编程问答-------------------- 小菜路过,感谢大神解释,其实我也看不太懂 --------------------编程问答-------------------- 2楼的大神,能说一下原来代码为什么错了,错误的原因是在哪?谢谢了 --------------------编程问答-------------------- 求错误原因  ,表示代码看不太懂  。。 --------------------编程问答--------------------
引用 1 楼 qq121780200 的回复:
已经帮你修改过来了

代码:



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]);
// }
// }
}
}

能说一下错误的原因吗?为什么要这么改?
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,