2014-12-25 2 views
-4

Я хочу, чтобы данные, введенные пользователями, не были строкой, и если она показывает сообщение!, как убедиться, что пользователь вводит номер?

String number = JOptionPane.showInputDialog("Enter a number : ",null); 

здесь больше информации для того, что я делаю

   String guess = JOptionPane.showInputDialog("Enter Your Guess Number : ",null); 
       if((Integer.parseInt(guess) < 1)) 
       { 
       JOptionPane.showMessageDialog(null,"Enter a number Greater than 0!"); 
         JOptionPane.showMessageDialog(null, "you won 1,000 $", "winner!" 
          , JOptionPane.INFORMATION_MESSAGE); 
       } 
+0

Вы хотите проверить номер, char или boolean? –

+0

Нет, я хочу просто проверить, введен ли тип данных, не является целым числом –

+0

Возможный дубликат [Как проверить, является ли String числовым типом в Java] (http://stackoverflow.com/questions/1102891/how-to -check-if-a-string-is-a-numeric-type-in-java) –

ответ

1

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

Прочтите раздел из учебника Swing по телефону Stopping Automatic Dialog Closing, чтобы вы могли проверить текст, введенный до закрытия диалога.

2

Вы можете достичь этого путем анализа значения, введенного пользователем, и если это не является допустимым числом, то показать диалоговое окно ошибки с помощью JOptionPane.showMessageDialog , Например.

String number = JOptionPane.showInputDialog("Enter a number : ",null); 
boolean isValidNumber = false; 
try { 
    System.out.println(Integer.parseInt(number)); 
    isValidNumber = true; 
} catch (NumberFormatException e) { 
    JOptionPane.showMessageDialog(new JPanel(), "Invalid number", "Error", JOptionPane.ERROR_MESSAGE); 
} 
+0

System.out.println (Integer.parseInt (число)); // его никогда не будет правдой, я знаю, что должен использовать сканер, но я хочу сделать свою игру JOptionPane (для параметров выбора) –

+0

@ MR1, вам нужно использовать логическую переменную, очевидно. – sol4me

+0

Я знаю, но это другое. Tnx –

2

Если вы ожидаете целое число, это должно сделать это

boolean isInteger = false; 
try { 
    int foo = Integer.parseInt(number); 
    isInteger = true; 
} catch (NumberFormatException) { 
    // it's not a integer, handle the exception 
} 
+0

nop, у меня есть случайный генератор, а не сканер, и я хочу проверить пользовательское угадывание, tnx для вашего ответа –

+1

Этот код проверяет, есть ли строка ('number 'variable) может быть проанализирована с помощью Integer или нет, это не имеет никакого отношения к сканеру. Погода, которую вы получаете, что «номер» от сканера, случайный генератор, веб-сервис или что-то еще совершенно не имеет значения. –

Смежные вопросы