indexof出错
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class fr2
{
public static void main(String[] args)
{
drawframe fr=new drawframe();
fr.drawgj();
}
}
class drawframe extends WindowAdapter implements TextListener//
{
int y,z;
Frame f=new Frame("梦幻西游工具");
TextField text=new TextField(30);
TextArea ta1=new TextArea(5,40);
TextArea ta2=new TextArea(5,40);
void drawgj()
{
Font MyFont= new Font("隶书",Font.BOLD,20);
f.setLayout(null);
f.setSize(800,460);
f.setLocation(100,100);
f.setFont(MyFont);
text.setBounds(0,30,800,30);
ta1.setBounds(0,60,400,400);
ta2.setBounds(400,60,400,400);
f.add(text);
f.add(ta1);
f.add(ta2);
f.setVisible(true);
f.addWindowListener(this);//关闭程序
text.addTextListener(this); //文本监视
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void textValueChanged(TextEvent e)
{
//ta1.setText("");
ta2.setText("");
String[] str=new String[100];
File fl=new File("d:"+File.separator+"1.txt");
char tab=9; //定义TAB字符
try //将文件信息放入str[]
{
FileInputStream fis=new FileInputStream(fl);
byte[] buf=new byte[1000];
int len=fis.read(buf);
for(int i=0;i<len;i++) //罗列所有输入
{
if(buf[i]==tab) //当遇到TAB时,前一个字串结束
{
str[y]=new String(buf,z,i-z); //构造前一个字符串
z=i+1; //保留上次的位置
System.out.println(str[y]);
y=y+1;
System.out.println(y);
}
}
fis.close();
}
catch(Exception g)
{
}
ta2.append(text.getText());
//if(text.getText()!="")
{
//ta1.setText(null);
for(int i=0;i<100;i++)
{
if(str[i].indexOf(text.getText())!=-1) //如果文本是文件的一个子串,会返回位置-ID,不是返回-1
{
ta1.append(str[i]+"\n");
}
}
}
}
}
在执行的时候,老是报if(str[i].indexOf(text.getText())!=-1) 出错。说是空引用,
而且第2次改变TEXT数值时,TA1就不变化了