事件处理-新人一枚,求大神们帮助,不胜感激

问题描述

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

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)

解决方案

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

解决方案二:

                    sname=rs.getString(2);
                    spass=rs.getString(3);
                    //得到登录用户的级别
                    sunit=Integer.parseInt(rs.getString(4));

这里都好好调试下,天知道你的2 3 4都是什么列,是不是数组,是不是用户名密码,类型是否匹配。

解决方案三:

数据类型是否正确。调试一下

时间: 2024-10-30 17:45:02

事件处理-新人一枚,求大神们帮助,不胜感激的相关文章

用户权限-W7系统,安装天翼校园客户端没有最高权限,求大神解答。不胜感激!

问题描述 W7系统,安装天翼校园客户端没有最高权限,求大神解答.不胜感激! W7系统,安装天翼校园客户端没有最高权限,求大神解答.不胜感激! 安装错误提示: 您的用户权限不足,请使用管理员权限执行安装程序!安装退出. 可以留下QQ或者加Q:627984813 不胜感激哪!~~~ 解决方案 1055258954

报表-C++Builder中fastreport的问题,求大神指点,不胜感激!!!

问题描述 C++Builder中fastreport的问题,求大神指点,不胜感激!!! 如图所示是制作的报表,当每个Test为FAIL时,不想让这个条显示,但下面Test为PASS时,会自动移到Test为FAIL的那个条的位置,我该怎么实现?好比如图,BUS InterfaceTest为FAIL时,Flash Interface Test为PASS时,Flash Interface Test这个条移动到BUS InterfaceTest条的位置.当然这四个条都有可能为FAIL或PASS.因为是新

求大神帮忙,万分感激,关于jekyll的问题

问题描述 求大神帮忙,万分感激,关于jekyll的问题 在http://jekyllthemes.org/任意下载一个主题后,在主题根目录下,打开命令,输入jekyll build:jekyll s:分别出现如图的情况. 现在想通过网页127.0.0.1:4000访问这个主题:却访问不了,显示如图?请大神帮忙一下,该如何才能通过网页访问主题? 解决方案 估计是你选的highlighter是用python 写的,但是你只有ruby.建议你换个ruby写的highlighter 比如rogue 解决

虚拟机上exchange2010 外网收不到邮件 能发邮件 求exchange大神帮忙 小弟不胜感激

问题描述 虚拟机上exchange2010 外网收不到邮件 能发邮件 求exchange大神帮忙 小弟不胜感激 虚拟机上exchange2010 内网可以收发邮件 外网只能发送邮件 收不到邮件 解决方案 解决方案二: 解决方案三: 解决方案四: 解决方案五: 解决方案六: 解决方案七: 以上是截图 最后俩张是重复的

线程-下面是一段Java代码,里面有几处看不懂,望大神指教,不胜感激。

问题描述 下面是一段Java代码,里面有几处看不懂,望大神指教,不胜感激. package 线程; import java.awt.*;import java.awt.event.*; import javax.swing.*; public class TestThread extends JFrame { /** * */ //private static final long serialVersionUID = 1L; JPanel jPanel1 = new JPanel(); JBu

菜鸟一枚 求大神指点-php中模板页面a标签在ie中能用在其他浏览器中就不能用了,求大神指点。

问题描述 php中模板页面a标签在ie中能用在其他浏览器中就不能用了,求大神指点. <body> <div> <table border="1"> <tr> <td colspan="3"><h3><center>信息显示</center></h3></td> <td colspan="2"><a href=&

android播放器加载时候按返回导致ANR异常,求大神

问题描述 android播放器加载时候按返回导致ANR异常,求大神 我自己写的一个android播放器,滑动屏幕进行快进,然后视频处于加载的时候,点击返回按钮,就会出现ANR异常.求解,想了好久了,求大神相救.不胜感激 03-10 13:18:44.878: E/mdb_debug(350): mdb_usb_sharenet.c:send_sharenet_msg[L-232]: mdb usb share net channel is not ready!: 0, Success 03-10

求大神解答 hibernate Multi-tenancy多租户connection空指针?

问题描述 求大神解答 hibernate Multi-tenancy多租户connection空指针? hibernate Multi-tenancy多租户为什么connection总是空指针? 运行错误详情 Exception in thread "main" java.lang.NullPointerException at org.hibernate.c3p0.internal.C3P0ConnectionProvider.getConnection(C3P0Connection

服务器-求大神:weblogic在solaris部署

问题描述 求大神:weblogic在solaris部署 solaris是11,因为系统自带的jdk是1.8,版本太高,不便使用,所以自建了一个用户,在该用户下创建了jdk1.6(主要是spring是2.5的),安装上了wls10.3.6后程序怎么都发布不了,什么jar包冲突,指向自己的jar包的weblogic.xml配置文件都写烂了,不好使,就是提示:java.lang.ClassNotFoundException: org.springframework.web.context.Contex

C#调用dll参数设置的问题,求大神指点迷津!!!

问题描述 在做一个设备开发,现在遇到一些问题,对方提供的dll文件是c++编译的,我使用c#导入dll的函数,有一个函数有问题,调用时报异常,这个函数是关键函数,不知道哪里出错,求大神指点一下,不胜感激!函数原型如下:extern"C"__declspec(dllexport)CHD_RET_ECHD_WMP_Poll(INCHD_WMP_Thandle,OUTCHD_STREAM_TYPE_E*type,INCHD_U32timeout_sec,INCHD_U32timeout_ms