estructura - joptionpane java numeros
JOptionPane Entrada a int (5)
Esto porque la entrada que el usuario inserta en JOptionPane
es una String
y se almacena y se devuelve como una String
.
Java no puede convertir entre cadenas y números por sí mismo, debe usar funciones específicas, solo use:
int ans = Integer.parseInt(JOptionPane.showInputDialog(...))
Estoy tratando de hacer que JOptionPane obtenga una entrada y la asigne a un int pero estoy obteniendo algunos problemas con los tipos de variables.
Estoy intentando algo como esto:
Int ans = (Integer) JOptionPane.showInputDialog(frame,
"Text",
JOptionPane.INFORMATION_MESSAGE,
null,
null,
"[sample text to help input]");
Pero estoy obteniendo:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot
be cast to java.lang.Integer
Lo cual suena lógico aún, no puedo pensar en otra forma de hacer que esto suceda.
Gracias por adelantado
Simplemente use:
int ans = Integer.parseInt( JOptionPane.showInputDialog(frame,
"Text",
JOptionPane.INFORMATION_MESSAGE,
null,
null,
"[sample text to help input]"));
No puede convertir un String
en un int
, pero puede convertirlo usando Integer.parseInt(string)
.
Tenga en cuenta que Integer.parseInt arroja una NumberFormatException si la cadena pasada no contiene una cadena procesable.
// 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);
}
}
String String_firstNumber = JOptionPane.showInputDialog("Input Semisecond");
int Int_firstNumber = Integer.parseInt(firstNumber);
Ahora su Int_firstnumber
contiene un valor entero de String_fristNumber
.
Espero que haya ayudado