web-dev-qa-db-ja.com

JOptionPane intへの入力

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

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

前もって感謝します

8
kxk

単に使用してください:

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

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

8
jjnguy

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

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

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

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

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

これでInt_firstnumberString_fristNumberの整数値が含まれます。

それが役に立てば幸い

0
mubarak baloch
// 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
MyStack