web-dev-qa-db-fra.com

JOptionPane Input to int

J'essaie de faire un JOptionPane obtenir une entrée et l'assigner à un int, mais je rencontre des problèmes avec les types de variable.

J'essaie quelque chose comme ça:

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

Mais j'obtiens: 

Exception in thread "main" Java.lang.ClassCastException: Java.lang.String cannot
be cast to Java.lang.Integer

Ce qui semble logique pour le moment, je ne peux pas penser à un autre moyen d'y arriver.

Merci d'avance

8
kxk

Utilisez simplement:

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

Vous ne pouvez pas convertir une String en une int, mais vous pouvez la convertir à l'aide de Integer.parseInt(string).

7
jjnguy

En effet, l'entrée que l'utilisateur insère dans JOptionPane est une String et elle est stockée et renvoyée sous la forme String.

Java ne peut pas convertir lui-même entre chaînes et nombre, vous devez utiliser des fonctions spécifiques, utilisez simplement:

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

Veuillez noter que Integer.parseInt lève une exception NumberFormatException si la chaîne transmise ne contient pas de chaîne analysable.

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

Maintenant, votre Int_firstnumber contient la valeur entière de String_fristNumber.

espérons que cela a aidé

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