2017-12-29 18 views
0

私はユーザー入力が文字列セットと等しい場合に認証しようとしています。 .getText();のようには見えません。ユーザー入力を文字列値として設定しています。どのような助けも感謝しており、歓迎されています:)ありがとう!JPanel .getText();問題

while(adminLogIn) { 
    System.out.println('\u000C'); 
    System.out.println("Enter Administrator Credentials: "); 
    String adminusername = "admin"; 
    String adminpassword = "admin123"; 
    TimeUnit.SECONDS.sleep(1); 
    JTextField usernameInput = new JTextField(15); 
    JTextField passwordInput = new JPasswordField(15); 

    JPanel myPanel = new JPanel(); 
    myPanel.add(new JLabel("Username: ")); 
    myPanel.add(usernameInput); 
    myPanel.add(Box.createHorizontalStrut(15)); // a spacer 
    myPanel.add(new JLabel("Password: ")); 
    myPanel.add(passwordInput); 
    String username = usernameInput.getText(); 
    String password = passwordInput.getText(); 
    int result = JOptionPane.showConfirmDialog(null, myPanel, 
      "Administrator Login", JOptionPane.OK_CANCEL_OPTION); 
    if (username.equals(adminusername) && (password.equals(adminpassword))) { 
     System.out.println("Logging In..."); 
     TimeUnit.SECONDS.sleep(3); 
     adminLogIn = false; 
    } else { 
     System.out.println("Wrong Username/Password. Try Again."); 
     attempts++; 
    } 
    if (attempts == 3) { 
     System.out.println("Login Failed. Locking Out User..."); 
     TimeUnit.SECONDS.sleep(3); 
     System.exit(0); 
    } 
} 

答えて

1

変数のユーザー名とパスワードを設定すると、ダイアログはまだ表示されません。したがって、値は空です。次のようにコードを変更してください:

while(adminLogIn) { 
    System.out.println('\u000C'); 
    System.out.println("Enter Administrator Credentials: "); 
    String adminusername = "admin"; 
    String adminpassword = "admin123"; 
    TimeUnit.SECONDS.sleep(1); 
    JTextField usernameInput = new JTextField(15); 
    JTextField passwordInput = new JPasswordField(15); 

    JPanel myPanel = new JPanel(); 
    myPanel.add(new JLabel("Username: ")); 
    myPanel.add(usernameInput); 
    myPanel.add(Box.createHorizontalStrut(15)); // a spacer 
    myPanel.add(new JLabel("Password: ")); 
    myPanel.add(passwordInput); 
    int result = JOptionPane.showConfirmDialog(null, myPanel, 
      "Administrator Login", JOptionPane.OK_CANCEL_OPTION); 
    if (usernameInput.getText().equals(adminusername) && (passwordInput.getText().equals(adminpassword))) { 
     System.out.println("Logging In..."); 
     TimeUnit.SECONDS.sleep(3); 
     adminLogIn = false; 
    } else { 
     System.out.println("Wrong Username/Password. Try Again."); 
     attempts++; 
    } 
    if (attempts == 3) { 
     System.out.println("Login Failed. Locking Out User..."); 
     TimeUnit.SECONDS.sleep(3); 
     System.exit(0); 
    } 
} 
+0

うわー、それはまっすぐ顔を真っ直ぐ見つめていました。早速のご返事ありがとうございます! –