package myjava;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
public class FileView extends Frame implements ActionListener
{
String directory;
static TextArea textarea;
static Panel p;
static Button openfile;
static Button close;
static Frame frame;
public FileView(String directory,String filename)
{
super();
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
});
if(directory==null)
{
File f;
if((filename!=null)&&(f=new File(filename)).isAbsolute())
{
directory=f.getParent();
filename=f.getName();
}
else
directory=System.getProperty("user.dir");
}
this.directory=directory;
setFile("/E","FileView.java");
}
public void setFile(String directory,String filename)
{
if((filename==null)||(filename.length()==0))
return ;
File f;
FileReader in=null;
try
{
f=new File("/","FileView.java");
in=new FileReader(f);
char[] buffer=new char[4096];
int len;
textarea.setText("");
while((len=in.read(buffer))!=-1)
{
String s=new String(buffer,0,len);
textarea.append(s);
}
this.setTitle("FileViewer:"+filename);
textarea.setCaretPosition(0);
}
catch(IOException e)
{
textarea.setText(e.getClass().getName()+":"+e.getMessage());
this.setTitle("FileViewer:"+filename+":I/OException");
}
finally
{
try
{
if(in!=null)
in.close();
}
catch(IOException e)
{

}
}
}
public void actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals("OpenFile"))
{
FileDialog f=new FileDialog(this,"Open File",FileDialog.LOAD);
f.show();
directory=f.getDirectory();
setFile(directory,f.getFile());
f.dispose();
}
else if(cmd.equals("close"));
this.dispose();
}
public static void main(String[] args)
{
frame.addWindowListener(new WindowAdapter()
{
public void windowClosed(WindowEvent e)
{
System.exit(0);
}
});
textarea=new TextArea("",24,80);
textarea.setFont(new Font("MonoSpaced",Font.PLAIN,12));
textarea.setEditable(false);
p=new Panel();
p.setLayout(new FlowLayout(FlowLayout.RIGHT,10,5));
Font font=new Font("SansSerif",Font.BOLD,14);
openfile=new Button("OpenFile");
close=new Button("Close");
p.add(openfile);
p.add(close);
frame.add("Center",textarea);
frame.add("South",p);
frame.setSize(500,400);
frame.setVisible(true);
frame.setSize(200,250);
frame.show();
}
}
Exception in thread "main" java.lang.NullPointerException
    at myjava.FileView.main(FileView.java:92)
注意:E:\FileView.java 使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译
请问问题出在哪里?