求高手帮忙这段代码哪里错了
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class jishiben {
private Frame f;
private Menu m,mc;
private MenuBar mb;
private MenuItem closeItem,saveItem,openItem,mcc;
private TextArea TextAreas;
private FileDialog openDialog,saveDialog;
private Dialog dialogs;
private Label labelTexts;
private Button bt;
private File file;
jishiben(){
init();
}
public void init(){
f=new Frame("记事本");
f.setBounds(300,100,600,500);
//f.setLayout(new FlowLayout());
mb=new MenuBar();
m=new Menu("文件");
mc=new Menu("子菜单");
openItem =new MenuItem("打开");
saveItem =new MenuItem("保存");
closeItem =new MenuItem("退出");
mcc=new MenuItem("子菜单的子菜单");
dialogs=new Dialog(f,"dialogs",true);
dialogs.setLayout(new FlowLayout());
m.add(mc);
mc.add(mcc);
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
mb.add(m);
f.setMenuBar(mb);
TextAreas =new TextArea();
TextAreas.setColumns(5);
f.add(TextAreas);
myEvents();
f.setVisible(true);
}
public void myEvents(){
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
dialogs.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e){
dialogs.dispose();
}
});
bt.addActionListener(new ActionListener() {//这里报错
public void actionPerformed(ActionEvent e) {
//dialogs.setVisible(false);
dialogs.dispose();
//dialogs.setVisible(false);
//System.out.print("1111111");
}
});
saveItem.addActionListener(new ActionListener(){//保存文件动作
public void actionPerformed(ActionEvent e2) {
if(file==null){
saveDialog=new FileDialog(f,"我要保存",FileDialog.LOAD);
saveDialog.setVisible(true);
String getPath=saveDialog.getDirectory();
String getFile=saveDialog.getFile();
if(getPath==null || getFile==null){
//dialogs=new Dialog(f,"对不起,你没有选择",true);
labelTexts=new Label("你没有选择任何内容");
bt=new Button("确定");
dialogs.add(labelTexts);
dialogs.add(bt);
dialogs.setBounds(300,300,100,50);
dialogs.setVisible(true);
return;
}
file=new File(getPath,getFile);
}
try {
BufferedWriter bufw=new BufferedWriter(new FileWriter(file));
String text=TextAreas.getText();
bufw.write(text);
bufw.close();
} catch (Exception e) {
throw new RuntimeException("写入失败");
}
}
});
openItem.addActionListener(new ActionListener(){//监控打开动作
public void actionPerformed(ActionEvent e) {
openDialog=new FileDialog(f,"我要打开",FileDialog.LOAD);
openDialog.setVisible(true);
String getPath=openDialog.getDirectory();
String getFile=openDialog.getFile();
if(getPath==null || getFile==null){
//dialogs=new Dialog(f,"对不起,你没有选择",true);
labelTexts=new Label("你没有选择任何内容");
bt=new Button("确定");
dialogs.add(labelTexts);
dialogs.add(bt);
dialogs.setBounds(300,300,100,50);
dialogs.setVisible(true);
return;
}
if(!((getPath+getFile).endsWith("txt")) && !((getPath+getFile).endsWith("java")) ){
labelTexts=new Label("你选择的不是文本文件");
bt=new Button("确定");
dialogs.add(labelTexts);
dialogs.add(bt);
dialogs.setBounds(300,300,200,100);
dialogs.setVisible(true);
return;
}
TextAreas.setText("");
file =new File(getPath,getFile);
try {
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null){
TextAreas.append(line+"\r\n");
}
bufr.close();
} catch (Exception e2) {
// TODO: handle exception
throw new RuntimeException("读取失败");
}
}
});
}
public static void main(String[] args) {
new jishiben();
}
}
Exception in thread "main" java.lang.NullPointerException
at jishiben.myEvents(jishiben.java:72)
at jishiben.init(jishiben.java:52)
at jishiben.<init>(jishiben.java:18)
at jishiben.main(jishiben.java:161)