import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
 
 
public class Database  implements ActionListener{
    //登录面板
    JFrame logframe;
    JLabel nameLabel;
    JLabel passwordLabel;
    JTextField name;
    JPasswordField password; 
    //注册面板
    JFrame regframe;
    JLabel newuserLabel;
    JLabel newpasswordLabel;
    JTextField newuser;
    JPasswordField newpassword;
    JButton  quit;
    JButton  confrim;
    
    JButton b_login ;
    JButton b_regedit;
     
    String dataurl="jdbc:odbc:DBtest";
    public static void main(String[] args) throws Exception{
        new Database(); 
        
    }
    
    public Database(){
        
         //登录面板设计
          //背景图片
         JPanel logpanel =new JPanel() {
            @Override
            public void paintComponent(Graphics g) {
                 ImageIcon background=new ImageIcon("2.jpg");
                 g.drawImage(background.getImage(), 0, 0, getWidth(), getHeight(), null);
            }
        }; 
        nameLabel=new JLabel("用户名:",SwingConstants.RIGHT);
        passwordLabel=new JLabel("密码:",SwingConstants.RIGHT);  
        name=new JTextField(15);
        password=new JPasswordField(15);
        b_login=new JButton("登陆");
        b_regedit=new JButton("注册"); 
        logpanel.add(nameLabel);  
        logpanel.add(name); 
        logpanel.add(passwordLabel);
        logpanel.add(password); 
        logpanel.add(b_regedit);
        b_regedit.addActionListener(this); 
        logpanel.add(b_login);
        b_login.addActionListener(this);  
        logframe.getContentPane().add(logpanel,"center"); 
        logframe.setTitle("登陆界面");
        logframe.setLocation(400, 400);
        logframe.setSize(250,250); 
        logframe.setResizable(true);
        logframe.setVisible(true); 
        logframe.setIconImage(Toolkit.getDefaultToolkit().getImage("1.jpg")); 
        logframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        //注册面板设计
         JPanel regpanel=new JPanel(); 
        newuserLabel=new JLabel("用户名:",SwingConstants.RIGHT);
        newpasswordLabel=new JLabel("密码:",SwingConstants.RIGHT);  
        newuser=new JTextField(15);
        newpassword=new JPasswordField(15);
        quit=new JButton("返回");
        quit.addActionListener(this);
        confrim=new JButton("确认");
        quit.addActionListener(this);
        regpanel.add(newuserLabel);
        regpanel.add(newpasswordLabel);
        regpanel.add(newuser);
        regpanel.add(newpassword);
        regpanel.add(quit);
        regpanel.add(confrim);
        regframe.getContentPane().add(regframe,"Center"); 
        regframe.setTitle("注册界面");
        regframe.setLocation(400, 400);
        regframe.setSize(250,250); 
        regframe.setResizable(true);
        regframe.setVisible(false); 
        logframe.setIconImage(Toolkit.getDefaultToolkit().getImage("1.jpg")); 
        regframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
     }

 
        @Override
         public void actionPerformed(ActionEvent e){
            try{
             if(e.getSource()==b_login){
                 login();
             }
             else if(e.getSource()==b_regedit){
                  regframe.setVisible(false);   
                  regedit();
                  
             }
         } catch (Exception ex) {
            ex.printStackTrace(); 
            }
         }
         private void login() throws Exception{ 
            Connection con;
            Statement state;
            ResultSet rs;  
            Properties pro = new Properties();
            pro.put("charSet", "GBK");//汉字乱码处理
            
             if((name!=null)&&(password!=null)){
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动
                con=DriverManager.getConnection(dataurl,pro);//链接
                state=con.createStatement();//创建Statement对象用于对数据库的操作
                rs=state.executeQuery("SELECT * FROM students_info");
                boolean is_ok = false;
                while(rs.next()){ 
                    if((name.getText().equals( rs.getString(1) ))&&
                            (new String(password.getPassword()).equals(rs.getString(2)))){
                       is_ok = true;
                       break;
                    }
               }
               if (is_ok) {
                   JOptionPane.showMessageDialog(logframe,"登陆成功!" ); 
               } else {
                   JOptionPane.showMessageDialog(logframe.getContentPane(),"用户名或密码错误,请重新输入","错误提示",
                           JOptionPane.ERROR_MESSAGE);
                    
                     
                    name.setText("");
                    password.setText("");
               }
              rs.close();
              state.close();
              con.close();
             }      
         } 
          private void regedit() throws  Exception{ 
              
            Properties pro = new Properties();
            pro.put("charSet", "GBK");
            
            Connection con=DriverManager.getConnection(dataurl,pro);
            Statement state =con.createStatement();
            ResultSet rs;  
            String r1;
            
            rs=state.executeQuery("SELECT * FROM students_info");
            boolean existed = false;
            while(rs.next()){ 
                if((newuser.getText().trim()).equals(rs.getString(1))){
                    existed = true;
                    break;
                }
            }
            if(existed){
                    JOptionPane.showMessageDialog(logframe.getContentPane(),"用户已存在,请重新输入","警告提示",
                    JOptionPane.WARNING_MESSAGE); 
                       name.setText("");
                       password.setText(""); 
                       rs.close();
                }else{
                     r1 = "insert into students_info(user,mima) values('"
                             + newuser.getText() + "','"
                             + new String(newpassword.getPassword()) + "');";
                     state.executeUpdate(r1); 
                     JOptionPane.showMessageDialog(logframe.getContentPane(),"注册成功");
                }
             state.close();
             con.close();
         }
     
}
错误信息
Exception in thread "main" java.lang.NullPointerException
	at database.Database.<init>(Database.java:70)
	at database.Database.main(Database.java:41)
Java Result: 1