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();
}
}
界面没什么问题,主要是在文件流的转换上不知道哪里不匹配,老是说没实例化。