JOptionPane Ввод в int - PullRequest
       30

JOptionPane Ввод в int

8 голосов
/ 25 июня 2010

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

Я пытаюсь что-то вроде этого:

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

Это звучит логично, но я не могу придумать другого способа сделать это.

Заранее спасибо

Ответы [ 5 ]

8 голосов
/ 25 июня 2010

Просто используйте:

int ans = Integer.parseInt( JOptionPane.showInputDialog(frame,
        "Text",
        JOptionPane.INFORMATION_MESSAGE,
        null,
        null,
        "[sample text to help input]"));

Вы не можете разыграть String в int, но вы можете преобразовать его, используя Integer.parseInt(string).

5 голосов
/ 25 июня 2010

Это потому, что вход, который пользователь вставляет в JOptionPane, является String, и он сохраняется и возвращается как String.

Java не может конвертировать между строками и числом сама по себе, вы должны использовать определенные функции, просто используйте:

int ans = Integer.parseInt(JOptionPane.showInputDialog(...))
0 голосов
/ 01 января 2017
String String_firstNumber = JOptionPane.showInputDialog("Input  Semisecond");
int Int_firstNumber = Integer.parseInt(firstNumber);

Теперь ваш Int_firstnumber содержит целочисленное значение String_fristNumber.

надеюсь, это помогло

0 голосов
/ 06 апреля 2016
// sample code for addition using JOptionPane

import javax.swing.JOptionPane;

public class Addition {

    public static void main(String[] args) {

        String firstNumber = JOptionPane.showInputDialog("Input <First Integer>");

        String secondNumber = JOptionPane.showInputDialog("Input <Second Integer>");

        int num1 = Integer.parseInt(firstNumber);
        int num2 = Integer.parseInt(secondNumber);
        int sum = num1 + num2;
        JOptionPane.showMessageDialog(null, "Sum is" + sum, "Sum of two Integers", JOptionPane.PLAIN_MESSAGE);
    }
}
0 голосов
/ 26 июня 2010

Обратите внимание, что Integer.parseInt генерирует NumberFormatException, если переданная строка не содержит анализируемой строки.

...