王爱沉 2015-12-23 12:47 采纳率: 4.3%
浏览 1487

下面的程序是在文本框输入文件夹和关键字查找文件路径并输出在面板上,但是为什么只能输出一行

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import static java.awt.BorderLayout.*;
public class FileSearcher
{
public static void findFiles(String baseDirName, String targetFileName, List fileList)
{
String tempName=null;
File baseDir=new File(baseDirName);
if(!baseDir.exists()||!baseDir.isDirectory())
{
System.out.println("文件查找失败"+baseDirName+"不是一个目录");
}
else
{
String[] filelist=baseDir.list();
for(int i=0;i {
File readfile=new File(baseDirName+"\\"+filelist[i]);
if(!readfile.isDirectory())
{
tempName=readfile.getName();
if(FileSearcher.wildcardMatch(targetFileName, tempName))
{
fileList.add(readfile.getAbsoluteFile());
}
}
else if(readfile.isDirectory())
{
findFiles(baseDirName+"\\"+filelist[i],targetFileName,fileList);
}
}
}
}
private static boolean wildcardMatch(String pattern ,String str)
{
int patternLength=pattern.length();
int strLength=str.length();
int strIndex=0;
char ch;
for(int patternIndex=0;patternIndex {
ch=pattern.charAt(patternIndex);
if(ch=='*')
{
while(strIndex {
if(wildcardMatch(pattern.substring(patternIndex + 1),str.substring(strIndex)))
{
return true;
}
strIndex++;
}
}
else if(ch=='?')
{
strIndex++;
if(strIndex>strLength)
{
return false;
}
}
else
{
if(strIndex>=strLength||(ch!=str.charAt(strIndex)))
{
return false;
}
strIndex++;
}
}
return (strIndex==strLength);
}
public static void main(String[] args)
{
JFrame jf=new JFrame();
JPanel jp=new JPanel();
final JTextArea jta=new JTextArea(20,30);
final JTextField jtf=new JTextField(10);
final JTextField jtf1=new JTextField(10);
JButton jb=new JButton("搜索");
jp.add(jtf);
jp.add(jtf1);
jp.add(jb);
jf.setLayout(new BorderLayout());
jf.add(jta,SOUTH);
jf.add(jp,NORTH);
jf.pack();
jf.setVisible(true);
jb.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String baseDIR=jtf.getText();
String fileName=jtf1.getText();
List resultList=new ArrayList();
FileSearcher.findFiles(baseDIR,fileName,resultList);
if(resultList.size()==0)
{
System.out.println("worng");
}
else
{
for(int i=0;i<resultList.size();i++)
{
StringBuffer sb=new StringBuffer();
sb.append(resultList.get(i));
jta.setText(sb.toString());
System.out.println(resultList.get(i));

                }
            }
        }
    });
}

}

  • 写回答

1条回答 默认 最新

  • threenewbee 2015-12-23 15:25
    关注
     for(int i=0;i<resultList.size();i++)
    {
    StringBuffer sb=new StringBuffer();
    sb.append(resultList.get(i));
    jta.setText(sb.toString());
    System.out.println(resultList.get(i));
    }
    ->
    StringBuffer sb=new StringBuffer();
    for(int i=0;i<resultList.size();i++)
    {
    sb.append(resultList.get(i));
    System.out.println(resultList.get(i));
    }
    jta.setText(sb.toString());
    
    评论

报告相同问题?

悬赏问题

  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件