JOptionPane输入到int

时间:2010-06-25 19:41:02

标签: java swing user-input int joptionpane

我试图让一个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 个答案:

答案 0 :(得分:8)

只需使用:

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

您无法将String投射到int,但可以使用Integer.parseInt(string)进行转换。

答案 1 :(得分:5)

这是因为用户在JOptionPane中插入的输入是String,并且存储并以String形式返回。

Java无法在字符串和数字之间进行转换,您必须使用特定的函数,只需使用:

int ans = Integer.parseInt(JOptionPane.showInputDialog(...))

答案 2 :(得分:0)

请注意,如果传递的字符串不包含可解析的字符串,则Integer.parseInt会抛出NumberFormatException。

答案 3 :(得分:0)

// 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);
    }
}

答案 4 :(得分:0)

String String_firstNumber = JOptionPane.showInputDialog("Input  Semisecond");
int Int_firstNumber = Integer.parseInt(firstNumber);

现在,您的Int_firstnumber包含整数值String_fristNumber

希望它有所帮助