2 u013054364 u013054364 于 2013.12.25 11:09 提问

JAVA小程序开发中遇到一个问题

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Studentguanli.actionPerformed(Studentguanli.java:111)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

页面代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.io.*;
import java.util.*;

public class Studentguanli extends JPanel implements ActionListener {
Hashtable 基本信息表 = null;

JTextField 学号, 姓名, 政治面貌, 家庭住址, 出生日期,电话号码,宿舍号码;

JRadioButton 男, 女;

Student 学生 = null;

ButtonGroup group = null;

JButton 录入, 重置;

FileInputStream inOne = null;

ObjectInputStream inTwo = null;

FileOutputStream outOne = null;

ObjectOutputStream outTwo = null;

File file = null;

public Studentguanli(File file) {
    this.file = file;
    学号 = new JTextField(10);
    姓名 = new JTextField(10);
    政治面貌 = new JTextField(10);
    家庭住址 = new JTextField(10);
    出生日期 = new JTextField(10);
    电话号码 = new JTextField(10);
    宿舍号码 = new JTextField(10);
    group = new ButtonGroup();
    男 = new JRadioButton("男", true);
    女 = new JRadioButton("女", false);
    group.add(男);
    group.add(女);
    录入 = new JButton("录入");
    重置 = new JButton("重置");
    录入.addActionListener(this);
    重置.addActionListener(this);
    Box box1 = Box.createHorizontalBox();
    box1.add(new JLabel("学号:", JLabel.CENTER));
    box1.add(学号);
    Box box2 = Box.createHorizontalBox();
    box2.add(new JLabel("姓名:", JLabel.CENTER));
    box2.add(姓名);
    Box box3 = Box.createHorizontalBox();
    box3.add(new JLabel("性别:", JLabel.CENTER));
    box3.add(男);
    box3.add(女);
    Box box4 = Box.createHorizontalBox();
    box4.add(new JLabel("政治面貌:", JLabel.CENTER));
    box4.add(政治面貌);
    Box box5 = Box.createHorizontalBox();
    box5.add(new JLabel("家庭住址:", JLabel.CENTER));
    box5.add(家庭住址);
    Box box6 = Box.createHorizontalBox();
    box6.add(new JLabel("出生日期:", JLabel.CENTER));
    box6.add(出生日期);
    Box box7 = Box.createHorizontalBox();
    box7.add(new JLabel("电话号码:", JLabel.CENTER));
    box7.add(电话号码);
    Box box8 = Box.createHorizontalBox();
    box8.add(new JLabel("宿舍号码:", JLabel.CENTER));
    box8.add(宿舍号码);
    Box boxH = Box.createVerticalBox();
    boxH.add(box1);
    boxH.add(box2);
    boxH.add(box3);
    boxH.add(box4);
    boxH.add(box5);
    boxH.add(box6);
    boxH.add(box7);
    boxH.add(box8);
    boxH.add(Box.createVerticalGlue());
    JPanel pCenter = new JPanel();
    pCenter.add(boxH);
    setLayout(new BorderLayout());
    add(pCenter, BorderLayout.CENTER);
    JPanel pSouth = new JPanel();
    pSouth.add(录入);
    pSouth.add(重置);
    add(pSouth, BorderLayout.SOUTH);
    validate();
}

public void actionPerformed(ActionEvent e) {  //学生信息录入
    if (e.getSource() == 录入) {
        String number = "";
        number = 学号.getText();
        if (number.length() > 0) {
            try {
                inOne = new FileInputStream(file);
                inTwo = new ObjectInputStream(inOne);
                基本信息表 = (Hashtable) inTwo.readObject();
                inOne.close();
                inTwo.close();
            } catch (Exception ee) {
            }

            if (基本信息表.containsKey(number)) {
                String warning = "该生基本信息已存在,请到修改页面修改!";
                JOptionPane.showMessageDialog(this, warning, "警告",
                        JOptionPane.WARNING_MESSAGE);
            } else {
                String m = "基本信息将被录入!";
                int ok = JOptionPane.showConfirmDialog(this, m, "确认",
                        JOptionPane.YES_NO_OPTION,
                        JOptionPane.INFORMATION_MESSAGE);
                if (ok == JOptionPane.YES_OPTION) {
                    String name = 姓名.getText();
                    String zhengzhi = 政治面貌.getText();
                    String dizhi = 家庭住址.getText();
                    String borth = 出生日期.getText();
                    String phone = 电话号码.getText();
                    String sushe = 宿舍号码.getText();
                    String sex = null;
                    if (男.isSelected()) {
                        sex = 男.getText();
                    } else {
                        sex = 女.getText();
                    }
                    学生 = new Student();
                    学生.setNumber(number);
                    学生.setName(name);
                    学生.setzhengzhi(zhengzhi);
                    学生.setdizhi(dizhi);
                    学生.setBorth(borth);
                    学生.setSex(sex);
                    学生.setphone(phone);
                    学生.setsushe(sushe);
                    try {
                        outOne = new FileOutputStream(file);
                        outTwo = new ObjectOutputStream(outOne);
                        基本信息表.put(number, 学生);
                        outTwo.writeObject(基本信息表);
                        outTwo.close();
                        outOne.close();
                        学号.setText(null);
                        姓名.setText(null);
                        政治面貌.setText(null);
                        家庭住址.setText(null);
                        出生日期.setText(null);
                        电话号码.setText(null);
                        宿舍号码.setText(null);
                    } catch (Exception ee) {
                        System.out.println(ee);
                    }
                }
            }
        } else {
            String warning = "必须要输入学号!";
            JOptionPane.showMessageDialog(this, warning, "警告",
                    JOptionPane.WARNING_MESSAGE);
        }
    }
    if (e.getSource() == 重置) {
        学号.setText(null);
        姓名.setText(null);
        政治面貌.setText(null);
        家庭住址.setText(null);
        出生日期.setText(null);
        电话号码.setText(null);
        宿舍号码.setText(null);
    }
}

2个回答

u013208438
u013208438   2013.12.25 13:19

报了空指针错误,在Studentguanli.java 第111行

csshanli
csshanli   2015.08.14 18:13

怎么改啊?改好了吗?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
商城项目开发遇到的问题记录(一)
给自己做的一个记错本
项目开发中遇到的问题汇总~持续更新
项目开发快进入尾声了,之前一直较忙,也由于没有遇到什么可以记载的问题,故此一直未整理,近期渐渐闲下来,会逐渐将这个项目在开发中遇到的问题汇总出来: 1. 集成蓝牙(佳博打印机)要在info里面进行如下配置 2.
谈谈开发管理信息系统遇到问题、挑战与麻烦
失败的IT项目比比皆是,进度延迟,预算超支,客户需求多变,成员加班抱怨。   我上网搜索没有任何一篇有关IT项目中出现问题、挑战与麻烦。这里我根据经验提提有关管理信息系统开发中遇到的问题、挑战与麻烦。   我只知道遇到的问题,怎么解决你们自己去思考好了。   1、市场决定生死,而不是技术。    为什么要谈MIS系统,很简单CSDN论坛就有人问,天朝不搞MIS系统的软件公司有几家?可以很明
vue开发问题总结
1.Vuejs组件 vuejs构建组件使用Vue.component(‘componentName’,{ /component/ }); 这里注意一点,组件要先注册再使用,也就是说:Vue.component('mine',{ template:'#mineTpl', props:['name','title','city','content']
安卓app开发遇到的问题以及解决方法
1 出现类似问题: [2017-09-07 20:07:22 - DeviceMonitor] Adb connection Error:远程主机强迫关闭了一个现有的连接。 [2017-09-07 20:07:23 - DeviceMonitor] Connection attempts: 1 [2017-09-07 20:11:54 - DeviceMonitor] Adb connect
信息管理系统开发遇到的问题
加this和不加this的区别 this是指的对象本身,通过this可以调用本对象拥有的所有方法和属性,当然不加this也可以调用。一般用this的情况: 1.当局部变量与成员变量相同名时,例如 this,x = x;this.x 是个成员变量,而x是个局部变量 2.在myeclipse下用this可以提示后面的方法或者成员变量 3. 在内部类或匿名内部类中使用this来指向内部类本
开发APP中遇到的坑
这篇博文主要是记录下自己日常开发中遇到的一些坑,以及相应的解决解决方案,权当自己的笔记,如有兄弟遇到类似的问题,欢迎交流。 Activity之间跳转的生命周期问题 : 背景 :有两个Activity A和B,A跳转到B,全局静态属性BitmapUtil.drr记录了文件的路径数据;A跳转到B时,A在onDestroy里清空drr数据,请问B在onCreate方法和onResume方法里读取到的
软件开发过程中遇到的问题(Java 、JavaScript)
此篇记录Sommer在学习、使用Java做软件开发过程中遇到的各种棘手问题。 1. 安装的jdk\lib文件夹下没有tools.jar文件 原因:安装jdk过程中会让你选择jdk和jre的安装目录,如果你设置成一样的话jre\lib下的jar文件会覆盖jdk\lib的jar文件,导致tools.jar丢失。 解决方法:将这两个安装路径设成不一样的就行啦。 2. 运行
电商项目开发总结
前不久,在职研究生的课上,项目管理课的老师让每一位同学都写一篇与自己工作相关的论文。或许是作业比较对我的胃口,我花了一天的时间总结了以前的项目中遇到的问题和一些需要注意的地方,3000字的论文作业很快就写完了。这里,我放上我的作业论文的一部分,以供各开发管理者参考。 。。。 。。。 。。。 。。。
实际项目开发中遇到的问题及解决办法
实际项目开发时会遇到一些奇葩问题,在这里记录下来,到一定数量了再整理。 1、通过将view加入到WindowManager中时如果设定flags为如下两个会出现弹出窗口无法接收到按键(如返回键的情况),去掉WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE即可。 mWindowParams = new WindowManager.Layou