当前位置: 代码迷 >> Java相关 >> JAVA 登陆界面出异常,大家看看,
  详细解决方案

JAVA 登陆界面出异常,大家看看,

热度:384   发布时间:2007-12-17 21:48:45.0
JAVA 登陆界面出异常,大家看看,
主函数是
package systemmanger;


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Main extends JFrame
{
    JFrame f;
    private JLabel name=new JLabel("用 户 名:");
    private JLabel psw=new JLabel("密      码:");
    private JTextField tf1=new JTextField(10);
    private JTextField tf2=new JTextField(10);
    private JButton b1=new JButton("确定");
    private JButton b2=new JButton("取消");
    public  Main() {
       setLayout(new FlowLayout());
       add(name);
       add(tf1);
       add(psw);
       add(tf2);
       add(b1);
       b1.addActionListener(new actionthing());
       add(b2);
       b2.addActionListener(new actionthing());
        setBounds(400,300,200,150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
   private class actionthing implements ActionListener //throws Exception
    {
        public void actionPerformed (ActionEvent e)
        {
            UserInfor ui=null;
            if(e.getSource() == b1)
            {
                String nameStr=tf1.getText();
                String pwdStr=tf2.getText();
                if(nameStr.equals("")||pwdStr.equals(""))
                {
                    JOptionPane.showConfirmDialog(Main.this,"帐号或密码不能为空","错误",JOptionPane.OK_CANCEL_OPTION,JOptionPane.ERROR_MESSAGE);
                }else
                {
                    try
                    {
                        ui=new UserInfor();
                    }catch(Exception g)   { System.out.println("数据库连结失败"); }
                    try
                    {
                        boolean temp=ui.isRight(nameStr,pwdStr);
                        ui.closeConnection();
                        if(temp)
                        {
                            System.out.println("密码有效");
                        }
                    }//catch(Exception g){ System.out.println("密码错误哦..");}
                    catch(Exception g){ g.printStackTrace();}
                }
            }
            else if(e.getSource() ==b2)
            {
                tf1.setText("");
                tf2.setText("");
            }
        }
    }
    public static void main(String[] args)
    {
        // TODO code application logic here
        new Main();
    }
   
}


连接数据库调用的类

package systemmanger;
import java.sql.*;
import java.util.*;
import org.omg.CORBA.COMM_FAILURE;

public class UserInfor
{
    private Connection con;
    private String url="jdbc:microsoft:sqlserver://192.168.0.118:1433;DatabaseName=abc";
    private String user="sa";
    private String password="";
   
    /** Creates a new instance of UserInfor */
    public void UserInfor() throws ClassNotFoundException,SQLException,InstantiationException,IllegalAccessException
    {
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
        con = DriverManager.getConnection(url,user,password);
        Statement sql=con.createStatement();
        ResultSet rs= sql.executeQuery("select * from user2 ");
    }
    public boolean  isRight(String name,String psd) throws Exception
    {
        
        String Select="select * from user2 where name = '"+name+"'&& password = '"+psd+"'";
        Statement stm = con.createStatement();
        ResultSet rst = stm.executeQuery(Select);
        while(rst.next())
        {
            return true;
        }
        System.out.println("数据库测试成功。");
        return false;
    }
    public void closeConnection()
    {
        try{
            con.close();
        }catch(Exception e)
        {
            e.printStackTrace();
        }
    }

}

里面的user2 是数据库里面的表名  name 和 password 是表中的两个选取项。

函数里面的两个参数,是从登陆窗口传送过来的输入数据。

可是,当我每次输入数据后,一点确定按钮,编译器就会报。
java.lang.NullPointerException
这个异常,请问下, 这是什么原因啊

知道的说下.
谢谢了..
搜索更多相关的解决方案: JAVA  界面  登陆  

----------------解决方案--------------------------------------------------------
唉,怎么就是没有人帮下我啊
对了,这几天,通过我的测试,基本上我知道是数据库的问题

SQL SERVER2000 的数据链接。我基本上别人说的方法都试过了,除了打SP3的补丁。

对了,SP3的丁是怎么安装的,知道的说下哦。。

3Q 3Q
----------------解决方案--------------------------------------------------------
你所用的数据表里面有没有数据哦
----------------解决方案--------------------------------------------------------
那是空指针异常,可能是哪个变量没有声明!在程序里设置一个断点然后用DEBUG模式运行一下!看一下程序运行到哪里出异常的!

[[italic] 本帖最后由 lgdcky 于 2007-12-20 13:42 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
我编译都成问题;
前提:
path = D:\Program Files\Java\jdk1.5.0\bin
classpath = ,;

编译 框 中:
G:\学习\SSD\SSD3\课外>javac UserInfor.java

G:\学习\SSD\SSD3\课外>javac Main.java
Main.java:34: connot find symbol
symbol  :class UserInfor
...


下面就是哪里出错,都是不能找到class UserInfor。
----------------解决方案--------------------------------------------------------
哈,我吧 package systemmanger; 语句注释掉就好了
是不是哪里还要设置package路径什么的啊,怎么设 ?

我是用 DOS 编译 运行的。
----------------解决方案--------------------------------------------------------
3楼说,我所用的数据表里面没有数据,是什么意思啊??
----------------解决方案--------------------------------------------------------
  相关解决方案