Java:当输入非int或double时,如何显示JOption错误?

时间:2017-11-01 11:25:47

标签: java joptionpane

如果用户输入的信息不是int或double,或者什么时候没有输入,我怎么能让JOption显示错误信息,然后按确定?我曾尝试过一个while循环,但它只是一遍又一遍地显示错误信息,并且我没有任何循环的当前代码意味着当用户实际在框中输入正确的数字时,无论如何都会出现JOption错误框,但是当提示再次输入值时,请转到下一步。我怎样才能1.阻止第一个显示器发生,2。实际上让它在输入空值时显示和循环,以及3.我可以为非数字输入什么样的代码?

我认为我已经使用String条目更正了,如下所示,但我有时会收到控制台错误消息。关于如何修复它的任何想法?

int / double JOption:

JOptionPane.showMessageDialog(null, "Invalid entry!", "Error!", 
JOptionPane.ERROR_MESSAGE);
    balance = Double.parseDouble(JOptionPane.showInputDialog(null, "Enter 
initial balance:", "Enter balance", JOptionPane.INFORMATION_MESSAGE));

表示字符串:

// if the dialog box is empty
    if (name.isEmpty()) {
        do {
            // display an error message
            JOptionPane.showMessageDialog(null, "Name cannot be empty", "ERROR", JOptionPane.ERROR_MESSAGE);
            name = JOptionPane.showInputDialog(null, "Enter customer name:", "Customers Name", // shows input box again
                    JOptionPane.INFORMATION_MESSAGE);
        } while (name.isEmpty()); // will loop until not empty
    }

错误:

  

CustomerInfo.main(CustomerInfo.java:19)中的线程“main”java.lang.NullPointerException中的异常

第19行是这样的:

        } while (name.isEmpty()); // will loop until not empty)

2 个答案:

答案 0 :(得分:0)

你可以创建一个方法来检查数字是double(也适用于int),然后在同一个调用中你只需检查输入的值是不是{{ 1}}。

null

答案 1 :(得分:0)

尝试双击

double balance=0;
    do {
        try {
        balance = Double.parseDouble(JOptionPane.showInputDialog(null, "Enter initial balance:", "Enter balance", JOptionPane.INFORMATION_MESSAGE));
        JOptionPane.showMessageDialog(null, balance);
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Invalid entry, \nPlease enter balance in double format");
    }
    } while (balance==0);

这是字符串

String csName = "";
    do {
        try {
            csName = JOptionPane.showInputDialog(null, "Enter Customer Name:", "Enter Customer Name", JOptionPane.INFORMATION_MESSAGE);
            if (csName.equals("")) {
                JOptionPane.showMessageDialog(null, "Please enter customer name");
            } else {
                JOptionPane.showMessageDialog(null, csName);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "invalid entry, \nplease enter customer name in string format");
        }
    } while (csName.equals(""));