Java JOptionPane输入到int

Java JOptionPane输入到int,java,swing,user-input,int,joptionpane,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]

我试图让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
这听起来合乎逻辑,但我想不出另一种方法来实现这一点

提前感谢

只需使用:

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

您不能将
字符串
强制转换为
int
,但可以使用
Integer.parseInt(String)
将其转换,这是因为用户插入到
作业窗格
中的输入是
字符串
,并以
字符串
的形式存储和返回

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

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

请注意,如果传递的字符串不包含可解析字符串,Integer.parseInt将引发NumberFormatException。

//使用JOptionPane进行添加的示例代码
// 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);
    }
}
导入javax.swing.JOptionPane; 公共类添加{ 公共静态void main(字符串[]args){ String firstNumber=JOptionPane.showInputDialog(“输入”); String secondNumber=JOptionPane.showInputDialog(“输入”); int num1=Integer.parseInt(firstNumber); int num2=Integer.parseInt(第二个数字); 整数和=num1+num2; showMessageDialog(null,“和为”+Sum,“两个整数之和”,JOptionPane.PLAIN_消息); } }
现在,您的
Int\u firstnumber
包含
String\u firstnumber
的整数值


希望能有所帮助

嗯。。。似乎我还需要添加int ans=Integer.parseInt(JOptionPane.showInputDialog(frame,“Text”,JOptionPane.INFORMATION_MESSAGE,null,null,“[帮助输入的示例文本]”))。toString()@如果使用正确的
showinputdialog
格式,则无需执行此操作。但是,在某些情况下你是对的。我明白了,我明白了。如果我可以再问一件事,有没有一种方法,使用一个循环,来检查给定的输入是否是一个整数?像。。。在ans=integer之前是否执行{ans=JOptionPane.showInputDialog(…)}?
String String_firstNumber = JOptionPane.showInputDialog("Input  Semisecond");
int Int_firstNumber = Integer.parseInt(firstNumber);