程序调了两三天了,一直有个小错误,不知道是哪里出错了!!
程序代码如下:import java.util.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.JFrame;class Addstudentfrm extends JFrame implements ActionListener
{
 JLabel l_msg,l_name,l_class,l_number,l_birthdate,l_sex,l_place,l_beizhu;
 JTextField t_name,t_class,t_number,t_birthdate,t_sex,t_place,t_beizhu;
 JButton b_clear,b_add,b_back;
 JPanel pan1,pan2,pan3,pan4,pan5,pan6,pan7,pan8,pan9;
 
 //NetConn sql_con;  //Connection conn; Student stu = null;
 HashMap<String,Student> 学生基本信息表=null;//HashMap<K,V> K - the type of keys maintained by this map;V - the type of mapped values
 //Hashtable 学生基本信息表=null;
 
 
 FileInputStream inOne=null;
   ObjectInputStream inTwo=null;
   FileOutputStream outOne=null;
   ObjectOutputStream outTwo=null;
   File systemFile;  
 //String a1,a2,a3,a4,a5,a6,a7;  
 Addstudentfrm(File file)
 {
   super("添加学生信息窗口");
 systemFile=file;
 
 
 
 l_msg     =new JLabel("添加学生        ");
 l_name    =new JLabel("姓  名:  ");
 l_class   =new JLabel("所在班级: ");
 l_number  =new JLabel("学  号: ");
 l_birthdate=new JLabel("出生日期:  ");
 l_sex     =new JLabel("性  别:  ");
 l_place   =new JLabel("籍    贯:  ");
 l_beizhu  =new JLabel("备  注:  ");
 t_name=new JTextField("",10);
 t_class =new JTextField("",10);
 t_number  =new JTextField("",10);
 t_birthdate   =new JTextField("",10);
 t_sex   =new JTextField("",10);
 t_place  =new JTextField("",10);
 t_beizhu  =new JTextField("",10);
 b_clear   =new JButton("清空");
 b_add     =new JButton("添加");
 b_back    =new JButton("返回");
 b_clear.addActionListener(this);
 b_add.addActionListener(this);
 b_back.addActionListener(this);
 pan1=new JPanel();pan2=new JPanel();pan3=new JPanel();pan4=new JPanel();pan5=new JPanel();pan6=new JPanel();pan7=new JPanel();pan8=new JPanel();pan9=new JPanel();
 pan1.add(l_msg);pan2.add(l_name);pan2.add(t_name);pan3.add(l_class);pan3.add(t_class);
 pan4.add(l_number);pan4.add(t_number);pan5.add(l_birthdate);pan5.add(t_birthdate);pan6.add(l_sex);pan6.add(t_sex);
 pan7.add(l_place);pan7.add(t_place);pan8.add(l_beizhu);pan8.add(t_beizhu);pan9.add(b_clear);pan9.add(b_add);pan9.add(b_back);
 setLayout(new GridLayout(9,1));
 add(pan1);add(pan2);add(pan3);add(pan4);add(pan5);add(pan6);add(pan7);add(pan8);add(pan9);
 
 
   //sql_con=new NetConn();  
 
 setBounds(350,150,400,500);

 
 
 }
 @SuppressWarnings("unchecked")
public void actionPerformed(ActionEvent ec)
 {
 if(ec.getSource()==b_back)
 {
 dispose();
 }
 else if(ec.getSource()==b_clear)
 {
 t_name.setText("");
 t_class.setText("");
 t_number.setText("");
 t_birthdate.setText("");
 t_sex.setText("");
 t_place.setText("");
 t_beizhu.setText("");
 l_msg     =new JLabel("添加学生        ");
 }
 else if(ec.getSource()==b_add)
 {
 if(t_name.getText().equals("")||t_class.getText().equals("")||t_number.getText().equals(""))
 {
 l_msg.setText("姓名,学号和所属班级不能为空!");
 
 }
 else
 {
            stu=new Student();
String name="";
        name=t_name.getText();
        System.out.println(stu.getName());

        if(name.length()>0){
         try{
                  inOne=new FileInputStream(systemFile);
                  inTwo=new ObjectInputStream(inOne);
                  学生基本信息表=(HashMap<String,Student>)inTwo.readObject();
                  inOne.close();
                  inTwo.close();
         }catch(Exception ee){}
         System.out.println(stu.getName());
        
           if(学生基本信息表.containsKey(name)){ //此处有问题!!!!!!         
                String warning="该生基本信息已存在,请到修改页面修改!";
                JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);
         System.out.println(stu.getName());
            }
            else{
             String m = "学生信息将被录入";
             l_msg.setText(m);
             System.out.println(stu.getName());
 
             int ok=JOptionPane.showConfirmDialog(this,m,"确认",
                           JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
               if(ok==JOptionPane.YES_OPTION){                 stu.setName(t_name.getText());
 stu.setGroup(t_class.getText());
 stu.setNumber(t_number.getText());
 stu.setBirthdate(t_birthdate.getText());
 stu.setSex(t_sex.getText());
 stu.setPlace(t_place.getText());
 stu.setBeizhu(t_beizhu.getText());
 System.out.println(stu.getName());
 System.out.println(stu.getGroup());
 System.out.println(stu.getNumber());
 System.out.println(stu.getBirthdate());
 System.out.println(stu.getSex());
 System.out.println(stu.getPlace());
 System.out.println(stu.getBeizhu());
 try { outOne=new FileOutputStream(systemFile);
                           outTwo=new ObjectOutputStream(outOne);
                           学生基本信息表.put(name,stu);//put(K key, V value) 
                           outTwo.writeObject(学生基本信息表);
                           outTwo.close();
                           outOne.close();
                           clearMess();
                      }
                      catch(Exception ee){}
               }
            }
 }
 }
 }
 }
 public void clearMess(){
 t_name.setText("");
 t_class.setText("");
 t_number.setText("");
 t_birthdate.setText("");
 t_sex.setText("");
 t_place.setText("");
 t_beizhu.setText("");
 l_msg     =new JLabel("添加学生        ");
 }

}
抛出异常如下:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Addstudentfrm.actionPerformed(Addstudentfrm.java:125)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)现已经查出是那个containsKey出了问题,望哪位高手指点一下!!谢谢大家了!!!!