0

JOptionPaneが表示されていません。コードを確認してください。

public void actionPerformed(ActionEvent e) {
     // TODO Auto-generated method stub
     //if (e.getActionCommand().equals("Ok")){
     if ( e.getActionCommand().equals(btnOk) ){
              if(connect(txtUser.getText(), txtPass.getText() ) ) {
                  JOptionPane.showMessageDialog(null, "WARNING", "Valid user!", JOptionPane.INFORMATION_MESSAGE);
              }
              else {
                        System.out.print("Wrong password!");
              }

     }
 }

私の接続方法、これを確認してください。

public boolean connect(String usr, String pwd){

     try {
         Class.forName("com.mysql.jdbc.Driver");
         connection = DriverManager.getConnection(
                     "jdbc:mysql://localhost:3306/USERS", "root", "root" );
          PreparedStatement ps = 
                  connection.prepareStatement( "SELECT lname, fname FROM employees where fname=? and lname =?" );
          ps.setString(1,usr);
          ps.setString(2,pwd);

         resultSet = ps.executeQuery();


       if(resultSet.next()) {
                return true;
       }

     } catch (Exception e) {
         e.printStackTrace();
     }

     return false;
 } // end of connect method

コードの何が問題なのかわかりません。どんな助けでもいただければ幸いです。ありがとう

4

1 に答える 1

2

間違ったパスワードが印刷されない場合!それはそれがラインを通過しないことを意味しe.getActionCommand().equals(btnOk)ます。btnOkが文字列であり、探している文字列であることを確認してください。

間違ったパスワードを出力する場合、これが発生する理由は簡単です。

btnOk私には文字列ではなくボタンのように聞こえます(ただし、余分なコードスニペットがなければ、それを推測する必要があります)。したがって、文字列actionCommandとボタンの同等性をテストしないように注意してください。

于 2012-07-12T09:06:58.723 に答える