数据加载中……

2011年4月19日

高手帮我看看这程序是哪里出了问题?

package SimpleSearcher;
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;

import javax.swing.*;
public class SimpleSearcherFrame {
JFrame jf=new JFrame("SimpleSearcher");
JTextArea jta;
JLabel l1,l2;
JPanel p;
JTextField tf1,tf2;
JScrollPane  jp;
JButton b1,b2,b3;
FileDialog fd;
String keyword,parent,child,path=new String();
public void go() throws IOException{
l1=new JLabel("请输入文件所在位置");
tf1=new JTextField(20);
tf1.setEditable(true);
l2=new JLabel("请输入查询的关键字");
tf2=new JTextField(20);
tf2.setEditable(true);
keyword=tf2.getText();
{fd=new FileDialog(jf,"打开文件位置");

jta=new JTextArea(300,100);
jp=new  JScrollPane(jta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
b1=new JButton("打开文件位置");
b1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){
fd.setVisible(true);
parent=fd.getDirectory();
child=fd.getFile();
path=parent+child;
tf1.setText(path);
}
}
);
b2=new JButton("查询");
b3=new JButton("清空");
b3.addActionListener(new ActionListener()
{
 public  void actionPerformed(ActionEvent e){
jta.setText(null); 
 }
});
p=new JPanel();
p.add(l1);
p.add(tf1);
p.add(b1);
p.add(tf2);
p.add(b2);
Container cp=jf.getContentPane();
cp.add(p,BorderLayout.NORTH);
cp.add(jta,BorderLayout.CENTER);
cp.add(b3,BorderLayout.SOUTH);
jf.pack();
jf.setVisible(true);
SimpleSearcherCode ssc=new SimpleSearcherCode();
String s=ssc.search(keyword,path);
jta.append(s);
}
}

}
package SimpleSearcher;
import java.io.*;
class SimpleSearcherCode
{
 public String  search(String keyword,String path) throws IOException
{
   FileReader fr = new FileReader(path);
   BufferedReader reader=new BufferedReader(fr);
   int line=0;int mark=0;String s1[]=new String[300];int i=0;
     while(reader.readLine()!=null)
     {
      line++;
      int start=0;
      while(reader.readLine().indexOf(keyword, start)!=-1){
      start=reader.readLine().indexOf(keyword,start);
      mark++;
      s1[i]= keyword+"在第"+line+"第"+start+"位置";
      i++;
      }
     }
  String s2="文件中一共搜到"+mark+"个关键字";
     if(mark==0)
     {
      return "文件中没有相关内容";
     }
     else {for(int j=0;j<i;j++)
      s2+=s1[i];
     return s2;
     }
}
}


package SimpleSearcher;

import java.io.IOException;

public class Searching {
public static void main(String args[]) throws IOException
{
SimpleSearcherFrame ssf =new SimpleSearcherFrame();
ssf.go();
}
}
界面没什么问题,主要是在文件流的转换上不知道哪里不匹配,老是说没实例化。

posted @ 2011-04-19 00:57 失眠患者 阅读(135) | 评论 (1)编辑 收藏