我编写了一些代码,通过 GUI 框架从文件中查找学生详细信息:
- 如果我成功输入数据并单击搜索按钮,它将正确打印详细信息。
- 如果我再次单击搜索,它会打印“未找到”。
我知道 readLine() 函数读取下一行,但我希望它在我按下搜索按钮时从头开始。我怎样才能做到这一点?
以下是我到目前为止的代码。
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
class search extends Frame implements ActionListener
{
Label lname,lresult;
TextField name;
TextArea result;
Button search,exit;
char ar;
String lines;
int n;
FileReader fr=new FileReader("student.txt");
BufferedReader br=new BufferedReader(fr);
public search() throws Exception
{
setTitle("student details");
setLayout(new FlowLayout());
lname=new Label("name :");
lresult=new Label();
name= new TextField(20);
result= new TextArea(50,50);
search=new Button("search");
exit= new Button("exit");
add(lname);
add(name);
add(search);
add(exit);
add(lresult);
add(result);
search.addActionListener(this);
exit.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
try
{
lines=br.readLine();
if(ae.getSource()==search)
{
n=lines.indexOf(name.getText());
if(n>-1)
{
lresult.setText(" name found");
result.setText(lines);
}
else
{
lresult.setText("not found");
result.setText("not found");
}
}
}
catch(Exception e)
{
}
if(ae.getSource()==exit)
{
search.this.dispose();
}
}
public static void main(String s[]) throws Exception
{
search se= new search();
se.setSize(400,200);
se.setVisible(true);
}
}