当按下“Inregistrare”按钮时,会弹出一个对话框,要求用户输入密码(设置为“qwerty”)。我希望它一直显示对话框,直到密码正确。方法如下:
private void ItemInregistrareActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane dialog = new JOptionPane();
dialog.setWantsInput(true);
dialog.showInputDialog("Password please:");
while(dialog.getInputValue()!="qwerty")
dialog.showInputDialog("Mai baga o fisa.");
ItemInregistrare.setEnabled(false);
ItemOpen.setEnabled(true);
ItemSave.setEnabled(true);
}
问题是,即使密码正确,它也永远不会出现问题。有什么提示吗?
答案 0 :(得分:1)
JOptionPane.showInputDialog
是一种静态方法,不需要JOptionPane
的任何实例。此外,如果用户按下取消,它已经返回输入的值或null
。因此,您无需致电dialog.getInputValue()
。
您可以尝试这样的事情:
String pwd;
do {
pwd = JOptionPane.showInputDialog("Password please:");
} while (pwd != null && !pwd.equals("qwerty"));
if (pwd == null) {
JOptionPane.showMessageDialog(null, "You pressed cancel");
} else {
JOptionPane.showMessageDialog(null, "Password is correct");
}
答案 1 :(得分:-1)
尝试使用
!dialog.getInputValue().equals("qwerty")
比较字符串