package controller;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import view.DengluWindow;
import view.VoteWindow;
import model.AllWin;
public class OKButtonListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//創(chuàng)建“VoteWindow窗體”
//AllWin.voteWindow=new VoteWindow("這是投票的窗體!","tubiao.jpg","beijing.jpg");
String name=DengluWindow.userField.getText();
String mima=DengluWindow.passwordField.getText();
Connection con1;
Statement st;
ResultSet rs;
if(name.equals("")||mima.equals(""))//如果沒(méi)輸用戶名或密碼,則提示對(duì)不起,請(qǐng)輸入用戶名或密碼
{
JOptionPane.showOptionDialog(null,"Error:用戶名或者密碼不能為空!","警告提示!", JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,null,null);
}
else//如果都有數(shù)據(jù)了就開(kāi)始連接數(shù)據(jù)庫(kù)驗(yàn)證
{
try
{
// 加載驅(qū)動(dòng)程序
Class.forName("com.mysql.jdbc.Driver");
//建立連接
con1=(Connection) DriverManager.getConnection("jdbc:mysql://localhost/user","root","520520");
st=(Statement) con1.createStatement();
rs=((java.sql.Statement) st).executeQuery("select * from tb_user where username='"+name+"'");
if(rs.next())//如果存在,就驗(yàn)證密碼
{
if(rs.getString("pwd").equals(mima))//如果密碼正確就提示,反之
{
//隱藏登錄窗體
AllWin.dengluWindow.setVisible(false);
AllWin.dengluWindow.validate();
//創(chuàng)建“VoteWindow窗體”
AllWin.voteWindow=new VoteWindow("這是投票的窗體!","tubiao.jpg","beijing.jpg");
}
else
{
JOptionPane.showOptionDialog(null,"Error:密碼錯(cuò)誤!","警告提示!", JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,null,null);
}
}
else//如果沒(méi)有查找到用戶名就提示
{
JOptionPane.showOptionDialog(null,"Error:沒(méi)有此用戶名!","警告提示!", JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,null,null);
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at controller.OKButtonListener.actionPerformed(OKButtonListener.java:26)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
就是有兩個(gè)窗體,登陸和投票,登陸時(shí)有用戶名和密碼,點(diǎn)擊提交按鈕就進(jìn)入到投票窗體。按鈕有監(jiān)聽(tīng),就是這個(gè)監(jiān)聽(tīng)有問(wèn)題。我在數(shù)據(jù)庫(kù)里建立了一張用戶表,只要符合表里的用戶名和密碼就能登陸進(jìn)入投票窗體。
2 回答

人到中年有點(diǎn)甜
TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
有個(gè)變量沒(méi)有實(shí)例化或者取到的為空,在Eclipse Debug單步可直接調(diào)試
添加回答
舉報(bào)
0/150
提交
取消