嗨我有一個形式,其中用戶寄存器,然後登錄在從登記的用戶名和密碼的數據被存儲在散列映射是這樣的:登錄用戶如果值在HashMap中
if (usersMap.containsKey("username")) {
JOptionPane.showMessageDialog(LoginForm.this, "User already exists !", "ERROR", JOptionPane.ERROR_MESSAGE);
} else {
usersMap.put("username", registerUser.getText());
usersMap.put("userpassword", registerPassword.getPassword());
JOptionPane.showMessageDialog(LoginForm.this, "Registration Successful !!", "SUCCESS", JOptionPane.PLAIN_MESSAGE);
}
我也爲您在用戶名重複的條目,它工作正常
當我試圖登錄的用戶將出現problemm
這裏是我的登錄代碼:
private void clickEventRightPanel() {
loginBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
unameLog = loginUser.getText();
logPass = loginPassword.getPassword();
if (usersMap.values().contains(loginUser.getText()) && usersMap.values().contains(loginPassword.getPassword())) {
JOptionPane.showMessageDialog(LoginForm.this, "Login sucessfull !!", "SUCCESS", JOptionPane.PLAIN_MESSAGE);
} else {
JOptionPane.showMessageDialog(LoginForm.this, "User does not exist ! Try again !", "ERROR", JOptionPane.ERROR_MESSAGE);
}
}
});
}
任何有關可能會在這裏出錯的想法?
想與大家分享是什麼問題? – 2014-12-10 22:01:27
它去到else語句是用戶不存在 – Eleni 2014-12-10 22:02:21
你**完全**濫用hashmaps。你需要一張用戶名映射表來散列密碼。 – SLaks 2014-12-10 22:04:44