2012-12-01 23 views
1

У меня есть несколько кнопок на моей панели, и каждый раз, когда я нажимаю на нее, появляется диалоговое окно ввода. Он имеет встроенную кнопку отмены. Теперь, когда я нажимаю кнопку отмены в начале кода без ввода количества в диалоговом окне, он говорит: «Это недопустимый» номер. Эта строка должна появиться только в том случае, если пользователь вводит алфавиты или символы, а не при нажатии отмены. Можем ли мы решить это?Отмена кнопки в showinputdialogbox

+2

* «Можем ли мы решить эту проблему?» * Для более эффективной помощи следует отправить сообщение [SSCCE] (http://sscce.org/). Также обратите внимание, что 'showinputdialogbox' не является методом в J2SE. –

+1

BTW - может ли кто-либо из тех, кто думал: «Этот вопрос показывает исследовательские усилия, полезно и понятно» объяснить их рассуждения? –

+1

@AndrewThompson robo-рецензенты - они не вернутся, чтобы прочитать вас ;-) – kleopatra

ответ

0

Попробуйте делать,

String Input = JOptionPane.showInputDialog(null,"Enter the number?", 
    "Number", JOptionPane.QUESTION_MESSAGE);   
if (Input.equals("")) 
{ 
    JOptionPane.showMessageDialog(null,"This is an invalid number"); 
} 

Следующая ссылка объясняет это даже лучше: Simple Data Validation.

+0

Это проверяет только пустую строку 'String'. Как насчет «алфавитов или символов», как спрашивает плакат? – trashgod

2

Сначала вам нужно решить, является ли String числом; нижеприведенный метод использует Double.valueOf().

private Double valueOf(String s) { 
    try { 
     return Double.valueOf(s); 
    } catch (NumberFormatException e) { 
     return null; 
    } 
} 

Вот пример того, как можно использовать метод:

private void display() { 
    String input = JOptionPane.showInputDialog(
     null, "Enter a number?", "Number", JOptionPane.QUESTION_MESSAGE); 
    Double value = valueOf(input); 
    JOptionPane.showMessageDialog(null, "The value " + input 
     + " is " + (value != null ? "valid" : "invalid") + "."); 
} 

Смотрите также How to Make Dialogs.

0

Строка ввода = JOptionPane.showInputDialog (нулевой, "Введите номер?",
"Номер", JOptionPane.QUESTION_MESSAGE);
(Input.matches (("((- | \ +)? [0-9] + (\. [0-9] +)?) +"))) { JOptionPane.showMessageDialog (null, «действительный номер»); } else { JOptionPane.showMessageDialog (null, "Это недопустимое число"); }

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