如何正确处理输入对话框?

时间:2016-12-26 07:41:55

标签: java input dialog modal-dialog joptionpane

输入对话框将显示项目的当前库存。我希望用户通过整数输入项目的新馆藏。

如果用户关闭或取消输入对话框WHILST在输入文本字段中也没有任何内容,我想返回主菜单。即使用户在输入文本字段中有某些内容,也会发生这种情况。

如果用户输入字符串,将捕获数字格式异常,系统将提示用户仅输入数字。

如果输入为空,并且用户单击“确定”,则会显示一个消息对话框,并告知用户您需要输入一个数字。

目前,我发现很难将这些方法实现到我的输入对话框中。

这是我的代码:

int newInput = Integer.parseInt(JOptionPane.showInputDialog(null, "Your current holdings are: "
            + currentHoldings, "Edit Holdings", JOptionPane.CANCEL_OPTION));

                    //Currently, when closing the program if newInput is empty
                    //It goes straight to the number format exception
                    //I need the program closed if the user closes it.
                    if (newInput == JOptionPane.CLOSED_OPTION)
                    {
                        JOptionPane.getRootFrame().dispose();
                        break;
                    }

                    ...

                    catch (NumberFormatException nfe)
                    {
                        JOptionPane.showMessageDialog(null, "Please enter in a number!");
                    }

即使文本字段为空并且用户通过红叉或取消按钮关闭,数字格式异常仍会抛出。即使文本字段中没有任何内容,我也希望程序关闭。

如何检查用户是否在输入对话框文本字段中输入了任何内容?我目前发现很难实现这个功能。

我的问题是,如果用户输入为空并且关闭输入对话框,如何更好地管理输入对话框以处理退出按钮。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

String code = JOptionPane.showInputDialog(null, "Your current holdings are: "
            + currentHoldings, "Edit Holdings", JOptionPane.CANCEL_OPTION);

    if (code == null){ //cancel button or "x" button

    }
    else if ("".equals(code)){ //don't input anything and click ok

    }
    else {
        //parse code to int and do what you want

    }