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
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)
.
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(...))
Veuillez noter que Integer.parseInt lève une exception NumberFormatException si la chaîne transmise ne contient pas de chaîne analysable.
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é
// 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);
}
}