java 中关于抛出异常的问题? Exception in thread "main" java.lang.NullPointerException at ATM.<init>
这是我的源码importjava.awt.*;importjava.awt.event.*;classATMextendsFrameimplementsActionLis...
这是我的源码
import java.awt.*;
import java.awt.event.*;
class ATM extends Frame implements ActionListener//(ATM报警告:The serializable class ATM does not declare a static final serialVersionUID field of type long)
{
int cardNO=123456;
int passwd=123456;
TextField text1,text2;
TextField card;
TextField pass;
Button login;
Label notice;
ATM(String s){
super(s);
login.addActionListener(this);
setLayout(new FlowLayout());
text1=new TextField("卡号:",6);
text1.setEditable(false);
card=new TextField(10);
text2=new TextField("密码:",6);
text2.setEditable(false);
pass=new TextField(6);
pass.setEchoChar('*');
add(text1);add(card);
add(text2);add(pass);
login=new Button("登录");
add(login);
notice=new Label(" ");
notice.setBackground(Color.cyan);
add(notice);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setBounds(100,100,400,400);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==login){
int c=0,p=0;
c=Integer.parseInt(card.getText());
p=Integer.parseInt(pass.getText());
if(c==cardNO&&p==passwd){notice.setText("卡号和密码正确!!");
}
else{notice.setText("卡号或密码有误!!请重新输入");
card.setText("");
pass.setText("");}
}
}
}
public class Card1 {
public static void main(String args[]){
ATM c1=new ATM("ATM");//(c1报警告The local variable c1 is never read )
}
} 展开
import java.awt.*;
import java.awt.event.*;
class ATM extends Frame implements ActionListener//(ATM报警告:The serializable class ATM does not declare a static final serialVersionUID field of type long)
{
int cardNO=123456;
int passwd=123456;
TextField text1,text2;
TextField card;
TextField pass;
Button login;
Label notice;
ATM(String s){
super(s);
login.addActionListener(this);
setLayout(new FlowLayout());
text1=new TextField("卡号:",6);
text1.setEditable(false);
card=new TextField(10);
text2=new TextField("密码:",6);
text2.setEditable(false);
pass=new TextField(6);
pass.setEchoChar('*');
add(text1);add(card);
add(text2);add(pass);
login=new Button("登录");
add(login);
notice=new Label(" ");
notice.setBackground(Color.cyan);
add(notice);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
setBounds(100,100,400,400);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==login){
int c=0,p=0;
c=Integer.parseInt(card.getText());
p=Integer.parseInt(pass.getText());
if(c==cardNO&&p==passwd){notice.setText("卡号和密码正确!!");
}
else{notice.setText("卡号或密码有误!!请重新输入");
card.setText("");
pass.setText("");}
}
}
}
public class Card1 {
public static void main(String args[]){
ATM c1=new ATM("ATM");//(c1报警告The local variable c1 is never read )
}
} 展开
5个回答
展开全部
你的login.addActionListener(this);代码写的太早了 你应该把它放在add.(login)
你试试 我调试通过了
你试试 我调试通过了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错误原因:
login还未实例化,就执行了login.addActionListener(this);,产生空指针。
修改:
将 login.addActionListener(this) 这一行,挪到 login=new Button("登录"); 这一行后面。
login还未实例化,就执行了login.addActionListener(this);,产生空指针。
修改:
将 login.addActionListener(this) 这一行,挪到 login=new Button("登录"); 这一行后面。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询