xue_sui_yuan 2015-01-05 09:09 采纳率: 40%
浏览 1646

新人一枚,求大神们帮助,不胜感激

import java.util.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
class Loginfrm extends Dialog implements ActionListener
{
JLabel l_name,l_pass,l_error;
JTextField t_name;
JButton b_enter,b_cancle,b_clear;
JPanel pan1,pan2,pan3,pan4;
JPasswordField t_pass;

String sname,spass;
int sunit;

NetConn sql;
Statement sqll;
ResultSet rs;

Librarybox lbox;

int until=0;

Loginfrm(Frame f,String s)
{
    //界面布局
    super(f,s);
    l_name=new JLabel("名字:");
    l_pass=new JLabel("密码:");
    l_error=new JLabel("请输入用户名和密码登录");
    t_name=new JTextField("",10);
    t_pass=new JPasswordField("",10);
    t_pass.setEchoChar('*');
    b_enter=new JButton("确定");
    b_enter.addActionListener(this);
    b_cancle=new JButton("取消");
    b_cancle.addActionListener(this);
    b_clear=new JButton("清除");
    b_clear.addActionListener(this);
    pan1=new JPanel();
    pan2=new JPanel();
    pan3=new JPanel();
    pan4=new JPanel();
    pan1.add(l_name);pan1.add(t_name);
    pan2.add(l_pass);pan2.add(t_pass);
    pan3.add(l_error);
    pan4.add(b_enter);pan4.add(b_cancle);pan4.add(b_clear);
    setLayout(new GridLayout(4,1));
    add(pan1);add(pan2);add(pan3);add(pan4);
    //建立数据库连接
    sql=new NetConn();
    //设置窗口大小
    setBounds(400,200,300,300);
    setVisible(false);
}
public void actionPerformed(ActionEvent e)
{
    //单击确定按钮的事件处理程序
    if(e.getSource()==b_enter)
    {
        //如果连续登录次数小于4   
        if(until<=4)
        {
            //如果用户名或者密码为空,将显示提示信息
           if(t_name.getText().equals("")||t_pass.getText().equals(""))
           {
                 l_error.setText("用户名和密码不能为空");
           }
           else
           {
               try
               {

                  sqll=sql.connect();
                  //根据用户名查询
                  rs=sqll.executeQuery("SELECT * FROM users where username="+"'"+t_name.getText()+"'");
                  //遍历查询得到的结果集
                  while(rs.next())
                   {
                        sname=rs.getString(2); 
                        spass=rs.getString(3);
                        //得到登录用户的级别
                        sunit=Integer.parseInt(rs.getString(4));
                                //如果密码正确
                                if(t_pass.getText().equals(spass))
                                {
                                    //判断用户的级别,根据不同的级别,显示不同的菜单
                                    switch(sunit)
                                    {
                                        case 1:
                                        {
                                            l_error.setText("登录成功");                        
                                            t_name.setText("");
                                            t_pass.setText("");
                                            lbox=new Librarybox();
                                            lbox.bookfi.setEnabled(true);
                                            lbox.bookse.setEnabled(true);
                                            lbox.bookth.setEnabled(true);
                                            lbox.bookfo.setEnabled(true);
                                            lbox.mi_system_manger.setEnabled(true);
                                            lbox.setVisible(true);
                                            this.dispose();
                                            break;
                                        }
                                        case 2:
                                        {
                                            l_error.setText("登录成功");                        
                                            t_name.setText("");
                                            t_pass.setText("");
                                            lbox=new Librarybox();
                                            lbox.bookfi.setEnabled(false);
                                            lbox.bookse.setEnabled(false);
                                            lbox.bookth.setEnabled(true);
                                            lbox.bookfo.setEnabled(false);
                                            lbox.mi_system_manger.setEnabled(false);
                                            lbox.setVisible(true);
                                            this.dispose();
                                            break;
                                        }
                                        case 3:
                                        {
                                            l_error.setText("登录成功");                        
                                            t_name.setText("");
                                            t_pass.setText("");
                                            lbox=new Librarybox();
                                            lbox.bookfi.setEnabled(true);
                                            lbox.bookse.setEnabled(false);
                                            lbox.bookth.setEnabled(false);
                                            lbox.bookfo.setEnabled(true);
                                            lbox.mi_system_manger.setEnabled(false);
                                            lbox.fi_msglabel_user.setEnabled(false);
                                            lbox.setVisible(true);
                                            this.dispose();
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    l_error.setText("用户名或密码错误!");
                                    until++;
                                }



                   }

                }
               catch(SQLException e2)
                {}

           }
        }
        //超出登录次数
        else
        {
            l_error.setText("你已经超出登录次数");
            t_name.setEnabled(false);
            t_pass.setEnabled(false);
            b_enter.setEnabled(false);
            b_clear.setEnabled(false);
        }
    }
     //单击清除按钮的事件处理程序
    else if(e.getSource()==b_clear)
    {
        t_name.setText("");
        t_pass.setText("");
        l_error.setText("请输入用户名和密码登录");
    }
    //单击取消按钮的事件处理程序
    else if(e.getSource()==b_cancle)
    {
        dispose();

    }
}

}
但运行时,有错,怎么也改不来
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Loginfrm.actionPerformed(Loginfrm.java:79)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

  • 写回答

3条回答 默认 最新

  • xiangde1997 2015-01-05 09:33
    关注

    你这个文件79行,是什么内容呢

    评论

报告相同问题?

悬赏问题

  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器