Java Swing对话问题

时间:2018-02-20 17:15:03

标签: java swing dialog

当按下“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);

}

问题是,即使密码正确,它也永远不会出现问题。有什么提示吗?

2 个答案:

答案 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") 比较字符串