Autor Tema: Java JOptionPane ejemplo básico en BlueJ Conversión de tipos de datos CU00670B  (Leído 4884 veces)

Jesu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Respuesta al ejercicio CU00670B del curso elemental de programación Java con entorno de desarrollo BlueJ

Citar
El API de Java proporciona herramientas para pedir datos al usuario a través de ventanas. Un ejemplo de ello es el uso de la clase JOptionPane perteneciente al paquete javax.swing.JOptionPane del API Java. El método showInputDialog permite pedir un dato al usuario y almacena su respuesta en un objeto de tipo String. Queremos crear un programa que pida al usuario un número y muestre por pantalla el doble de ese número. Para ello hemos creado este código:

import javax.swing.JOptionPane;
public class ejemplo1 {
    public static void main (String[] Args) {
        String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
        System.out.println ("El doble del número introducido es: " + 2*entradaUsuario); 
    }
}

El problema que tenemos es que nos salta un mensaje de error “operator * cannot be applied to int, java.lang.String”. ¿Qué interpretación haces de este mensaje de error? ¿Cómo se puede corregir el código para que a través de una conversión de tipos se ejecute el programa?  Puedes comprobar si tu código y respuestas son correctas consultando en los foros aprenderaprogramar.com.

Respuesta:

El error que sale es por que el dato que ingresa el usuario mediante la ventana JOptionPane asi sea un número esta clase solo recibe cadenas de tipo String. por lo tanto, el numero que se introduce es leído como una cadena de texto. Si le decimos que nos imprima el doble mediante la operación 2*entrada, nos dará un error puesto que el operador * solo se ejecuta con variables de tipo integer o int. Lo lógico sería realizar una conversión de String a Integer usando el método valueoOf o de tipo int utilizando el método Integer.ParseInt. ¡Conclusión! Mi forma de hacerlo sería:

Código: [Seleccionar]
package Ejercicios;
import javax.swing.*; //Importación del paquete javax.swing ara usar la clase JOptionPane
public class Conversion {

public static void main(String[] args) {
// TODO Auto-generated method stub
String entrada=JOptionPane.showInputDialog("Introduza un número para obtener su doble: ");
Integer numero=Integer.valueOf(entrada); // Conversion del tipo de dato por medio de valueOf
JOptionPane.showMessageDialog(null, "El doble del número introducido es "+(2*numero));

} //Cierre del método main

} // Cierre de la clase
« Última modificación: 17 de Junio 2017, 19:03 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola Jesu, todo correcto

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".