Проверка текстового поля Java с использованием Double.parseDouble () - PullRequest
3 голосов
/ 19 августа 2010

У меня есть свинг JTextBox, который в основном будет содержать двойное число.

Я считаю, что с помощью:

  Double.parseDouble(this.myTB.getText());

сгенерирует исключение (и, следовательно, программа будет остановлена) всякий раз, когда Double.parseDouble() получит неверный ввод.

Мой вопрос: есть ли простой способ НЕ генерировать исключение, а вместо этого возвращать целое число (-1), говорящее о сбое parseDouble ()?

Я пытаюсь создать для пользователя всплывающее окно, в котором говорится, что поле данных недействительно.

Спасибо


EDIT:

Спасибо, лол. Как я мог забыть о ловле исключений? это был долгий день!

Ответы [ 3 ]

9 голосов
/ 19 августа 2010

Лучший способ справиться с этим - использовать блок try / catch.

try {
    return Double.parseDouble(this.myTB.getText());
} catch (NumberFormatException e) {
    JOptionPane.showMessageDialog("Oops");
    return -1;
}

JOptionPane - отличный способ отображать предупреждающие сообщения для пользователей.

0 голосов
/ 19 августа 2010

Использование

try{
    return Double.parseDouble(this.myTB.getText());
   } catch(NumberFormatException e) {
       return -1;
   }
0 голосов
/ 19 августа 2010

Перехватите NumberFormatException и верните желаемое значение ошибки (или выполните какое-либо другое действие из предложения catch).

double value = -1;
try {
    value =  Double.parseDouble(this.myTB.getText());
} catch (NumberFormatException e) {
    e.printStackTrace();
}
return value;
...