8

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

まだ論理的に聞こえますが、これを実現する別の方法を考えることはできません。

前もって感謝します

4

6 に答える 6

9

単に使用してください:

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

Stringをにキャストすることはできませんが、intを使用して変換することはできますInteger.parseInt(string)

于 2010-06-25T19:42:57.133 に答える
5

これは、ユーザーが に挿入する入力が でJOptionPaneありString、それが として保存されて返されるためStringです。

Java は文字列と数値を単独で変換することはできません。特定の関数を使用する必要があります。

int ans = Integer.parseInt(JOptionPane.showInputDialog(...))
于 2010-06-25T19:43:48.973 に答える
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);
    }
}
于 2016-04-06T18:05:50.143 に答える
0

渡された文字列に解析可能な文字列が含まれていない場合、Integer.parseInt は NumberFormatException をスローすることに注意してください。

于 2010-06-25T21:12:21.250 に答える