pedir numeros estructura enteros ejercicios datos con capturar java swing user-input int joptionpane

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