Проверка, является ли текст в JTextField определенным типом данных - PullRequest
1 голос
/ 13 декабря 2010

Я пытаюсь написать код проверки в моем классе для моего GUI. Как бы я мог получить текст из JTextField в оператор while и попросить JOptionPane для пользователя ввести необходимый номер (double)? Чтобы быть более конкретным, как я могу проверить, является ли то, что я получил от JTextField, строкой / строкой + числом / чем-либо, кроме числа?

String text=JTextField.getText();

while(text.equals*a string or anything but a number*);
   JOP("Invalid input ............ etc...

Если у вас есть время, вот мой графический интерфейс и мой класс. Я пытаюсь сделать это для остальных методов. Но ответа на вышесказанное будет достаточно.

http://www.mediafire.com/?f079i1xtihypg1b

http://www.mediafire.com/file/f079i1xtihypg1b/FinanceGUI.java

Обновление:

Это то, что я имею до сих пор:

  //get the text entered in the amountRentText
  //JTextField and parse it to a Double
String amtRentIn=amountRentText.getText();

try{Double.parseDouble(amtRentIn);}
catch(NumberFormatException nfe){
   while()
       amtRentIn=JOptionPane.showInputDialog("Invalid input. Please "+
           "enter your rent: ");
 }

 double rent= Double.parseDouble(amtRentIn);
 fin.setRent(rent);

Что я положу в то время?

Ответы [ 3 ]

1 голос
/ 13 декабря 2010

javax.swing.InputVerifier предназначен для этого. Ваша реализация verify() может вызвать parseDuble(). Вот еще один пример .

0 голосов
/ 13 декабря 2010
String amtRentIn=amountRentText.getText();
boolean incorrect = true;
while(incorrect){
try{Double.parseDouble(amtRentIn);incorrect = false;}
catch(NumberFormatException nfe){
   amtRentIn=JOptionPane.showInputDialog("Invalid input. Please "+
           "enter your rent: ");
 }

}
0 голосов
/ 13 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...