2016-04-01 5 views
1

あなたが推測したように、私はログインコードに小さなバグがあります。それは大事なことではありませんし、それほど効果はありませんが、わかったらもっとプロフェッショナルになるでしょう。私はコードを理解しようとしている最後の48時間を費やしました、そして、私はそれがここでプロのために把握するために非常にシンプルで簡単な何かになるだろうことを知っています。しかし。ここに私のコードです。自分のユーザー名は「ユーザー名」とパスワードであれば、このコードでは ログインコードのバグ

class loginButton implements ActionListener{ 

    public void actionPerformed(ActionEvent e) { 
     if ("Username".equalsIgnoreCase(textUsername.getText())) 
      if ("Password".equalsIgnoreCase(textPassword.getText())) { 
      JOptionPane.showMessageDialog(null, "Login Success."); 
      CowboyCorral success = new CowboyCorral(); 
      success.setVisible(true); 
      dispose(); 
     }else JOptionPane.showMessageDialog(null, "Login Failed."); 
      } 
     } 
    buttonLogin.addActionListener(new loginButton()); 

は、あなたが見ることができるように、それはあなたの成功をログイン "プロンプトを与え、それが窓を配置し、開いた「パスワード」(スーパー安全)であります私のプロジェクトの2番目のファイル。それはすべてのダンディー作品です。

しかし、問題は、入力された資格情報がで間違っている場合、は「ログインに失敗しました」というプロンプトは表示されません。

また、単純な解決策かもしれませんが、私は悪い気持ちになると約束しますが、私はまだ学んでいます。誰かがそれを見て、どこを乱しているか教えてください。前もって感謝します!

+0

私はこの問題を理解していると思います。回答を投稿する前に、1つまたは2つの項目を確認してください。間違ったユーザー名を入力してログイン失敗ダイアログが表示されるかどうかを確認してください。私はそれが表示されることを願っています。 –

+0

ダブルチェックしても表示されません。 –

+0

ユーザー名とパスワードの両方についてtextUsername.getText()の代わりにtextUsername.getText()。toString()を使用できます。 –

答えて

1

ここに私の変更です:私は他の後に代わり1点のであることの、

if ("Username".equalsIgnoreCase(textUsername.getText()) && ("Password".equalsIgnoreCase(textPassword.getPassword().toString()))) { 

if ("Username".equalsIgnoreCase(textUsername.getText())) 
     if ("Password".equalsIgnoreCase(textPassword.getText())) { 

を変更し、2つのチェック以来、それは同時に、それらをチェックします。起こっていたことは、「はい、あなたのユーザー名が正しい」と言うことです。あなたのパスワードは正しいですか?そうでなければ、あなたのログインが失敗したことを表示します。今度は両方を同時にチェックし、入力された内容に応じてコードの一部を返します。

+0

これは私があなたにしようとしていた第二のものでした。ありがとう –