Java AWT 编程 空指针异常 哪里出错了?

cj2011933014 2012-05-09 04:11:25
RT
源代码:
package TEST;

import java.awt.*;
import java.awt.event.*;
import java.text.MessageFormat;

public class Start implements ActionListener{
TextField user;
TextField password;
public Start(){
Frame f = new Frame("登录界面");
f.setLayout(new BorderLayout());
Panel p1 = new Panel();
p1.setLayout(new GridLayout(2,1));
p1.add(new Label("用户名:"));
p1.add(new Label("密码:"));
Panel p2 = new Panel();
p2.setLayout(new GridLayout(2,1));
TextField user = new TextField();
TextField password = new TextField(10);
password.setEchoChar('*');
user.addActionListener(this);
password.addActionListener(this);
p2.add(user);
p2.add(password);
Panel p3 = new Panel();
p3.setLayout(new FlowLayout());
Button submit = new Button("确定");
Button reset = new Button("重置");
submit.addActionListener(this);
reset.addActionListener(this);
p3.add(submit);
p3.add(reset);
f.add(p1,BorderLayout.WEST);
f.add(p2,BorderLayout.CENTER);
f.add(p3,BorderLayout.SOUTH);
f.add(new Label("请输入你的用户信息:"),BorderLayout.NORTH);
f.setVisible(true);
f.setLocation(320,240);
f.pack();
f.addWindowListener(new FormAdapter());
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Start st = new Start();
}
private class FormAdapter extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
//@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String str = e.getActionCommand();
if(str.equals("确定")){
System.out.println(str);
System.out.println(user.getText());
//System.out.println(password.getText());
}else if(str.equals("重置")){
System.out.println(str);
}
}
}

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at TEST.Start.actionPerformed(Start.java:58)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(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)


...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cj2011933014 2012-05-09
  • 打赏
  • 举报
回复
谢谢LS and LSLS``
twjob_51 2012-05-09
  • 打赏
  • 举报
回复
把下面两句 TextField user = new TextField();
TextField password = new TextField(10);
修改为 user = new TextField();
password = new TextField(10);
你调用的是全局变量的user和这里的user不是一个对象
ITshashou 2012-05-09
  • 打赏
  • 举报
回复
TextField user = new TextField();

改成 user = new TextField();
你上面已经申明了 不要再申明
ITshashou 2012-05-09
  • 打赏
  • 举报
回复
System.out.println(user.getText());
这句报错
你的TextField user 没有实例
cj2011933014 2012-05-09
  • 打赏
  • 举报
回复
默认就是他们的Cpation吧,我加了还是出错!
twjob_51 2012-05-09
  • 打赏
  • 举报
回复
在实例化两个button后,添加下面两句。
submit.setActionCommand("确定");
reset.setActionCommand("重置");
cj2011933014 2012-05-09
  • 打赏
  • 举报
回复
顶,求帮忙!

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧