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