package com.hu.login;
import java.awt.*;
import javax.swing.*;
public class Loginframe extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* @param args
*/
JPanel jp1, jp2;
JLabel jl1, jl2;
JButton jb1, jb2;
JTextField jtf;
JPasswordField jpf;
public static void main(String[] args) {
// TODO Auto-generated method stub
Loginframe lf = new Loginframe();
}
public Loginframe() {
jl1 = new JLabel("用户名:");
jtf = new JTextField(10);
jl2 = new JLabel("密 码:");
jpf = new JPasswordField();
jb1 = new JButton("登录");
jb1 = new JButton("取消");
jp1 = new JPanel();
jp2 = new JPanel();
jp2.add(jl1);
jp2.add(jtf);
jp2.add(jl2);
jp2.add(jpf);
jp2.add(jb1);
jp2.add(jb2);
this.setSize(400, 400);
this.setTitle("登录界面");
this.add(jp1, BorderLayout.NORTH);
this.add(jp2, BorderLayout.SOUTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
[code="java"]
jb2 = new JButton("取消");
jb2 不是 jb1 。。。。
[/code]
[code="java"]
Exception in thread "main" java.lang.NullPointerException
at com.hu.login.Loginframe.(Loginframe.java:42)
at com.hu.login.Loginframe.main(Loginframe.java:23)
空指针异常:程序中的错误与我们程序相关的就停在42行。那看一下42行
jp2.add(jb2); 这说明不是 jp2 就是jb2
查看一下,发现是 jb2没有初始化。这纯脆是个手误,但要学会如何看错。
[/code]