Я пытаюсь заставить JOptionPane получить вход и присвоить его интервалу, но я получаю некоторые проблемы с типами переменных.
Я пробую что-то вроде этого:
Int ans = (Integer) JOptionPane.showInputDialog(frame,
"Text",
JOptionPane.INFORMATION_MESSAGE,
null,
null,
"[sample text to help input]");
Но я добираюсь:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot
be cast to java.lang.Integer
Который звучит логичным все же, я не могу думать о другом способе заставить это произойти.
Заранее спасибо
Простое использование:
int ans = Integer.parseInt( JOptionPane.showInputDialog(frame,
"Text",
JOptionPane.INFORMATION_MESSAGE,
null,
null,
"[sample text to help input]"));
Вы не можете привести String
к int
, но вы можете преобразовать его с помощью Integer.parseInt(string)
.
Это потому, что ввод, который пользователь вставляет в JOptionPane
, представляет собой String
, и он сохраняется и возвращается как String
].
Java не может преобразовывать строки и числа сама по себе, вы должны использовать определенные функции, просто используйте:
int ans = Integer.parseInt(JOptionPane.showInputDialog(...))
Обратите внимание, что Integer.parseInt генерирует исключение NumberFormatException, если переданная строка не содержит синтаксической строки.