0

例外を処理するはずのJava GUIアプリがあります。これが私のプログラムの全体的なアイデアです。整数型の入力を受け入れることになっています。入力ダイアログで例外が発生し、これをキャッチして「bad number」というメッセージを出力する必要があります。ただし、私の問題は、ユーザーが空の文字列や不適切な形式の数値を入力した場合に JPanelInput を繰り返すにはどうすればよいかということです。また、ユーザーが CANCEL オプションを選択した場合は、JOptionPane から抜け出します。

String strIndex = this.showInputDialog(message, "Remove at index");
int index;

// while strIndex is empty && str is not type integer
while (strIndex.isEmpty()) {
      strIndex = this.showInputDialog(message, "Remove at index");
      try {
            if (strIndex.isEmpty()) {

            }
        } catch (NullPointerException np) {
            this.showErrorMessage("Empty field.");
        }


        try {
            index = Integer.parseInt(strIndex);
        } catch (NumberFormatException ne) {
            this.showErrorMessage("You need to enter a number.");
        }
}


    void showErrorMessage(String errorMessage) {
        JOptionPane.showMessageDialog(null, errorMessage, "Error Message", JOptionPane.ERROR_MESSAGE);
    }

    String showInputDialog(String message, String title) {
        return JOptionPane.showInputDialog(null, message, title, JOptionPane.QUESTION_MESSAGE);
    }

アップデート:

String strIndex;
            int index;
            boolean isOpen = true;

            while (isOpen) {
                strIndex = view.displayInputDialog(message, "Remove at index");
                if (strIndex != null) {
                    try {
                        index = Integer.parseInt(strIndex);
                        isOpen = false;
                    } catch (NumberFormatException ne) {
                        view.displayErrorMessage("You need to enter a number.");
                    }
                } else {
                    isOpen = false;
                }
            }
4

1 に答える 1