martes, 27 de septiembre de 2016

Capítulo 73. Java: Introducción a los gráficos



Diario de un programador. Día 175

Java
Introducción a los gráficos.

Es hora de hacer una pequeña introducción a los gráficos que son tan comunes hoy en día. En esta ocasión, se presentarán los cuadros de dialogo, para lo cual se utilizará la clase JOptionPane que se encuentra en el paquete javax.swing, en otras palabras, para poder utilizar la classe JOptionPane, se debe importar el paquete javax.swing.
El primer método que se utilizará será el método showMessageDialog, el cual permite mostrar un mensaje de dialogo. Veamos un ejemplo.
Lo siguiente es crear una clase, en mi caso se llamará Dialogo. Una vez creada la clase y el método main, lo siguiente que se hará será importar la clase JOptionPane del paquete javax.swing.

import javax.swing.JOptionPane;
public class Dialogo {
  public static void main(String[] args){
   
  }//fin main
}//fin class


Lo siguiente es agregar el método showMessageDialog. Se hace de la siguiente manera:

import javax.swing.JOptionPane;
public class Dialogo {
  public static void main(String[] args){
   
    JOptionPane.showMessageDialog(null,"Bienvenido joven programador");
   
  }//fin main
}//fin class


Eso es todo. Ahora solo falta ejecutar el programa y si todo salió bien, entonces un mensaje debería de mostrarse en pantalla.


La clase JOptionPane, contiene cuadros de diálogos previamente empaquetados, los cuales permiten que los programas muestren ventanas con mensajes.
El método showMessageDialog, requiere de dos argumentos, el primero sirve para indicar la ubicación del cuadro de dialogo, al ser null, el cuadro de dialogo aparece en el centro de la pantalla. El segundo argumento corresponde al mensaje del cuadro.

El método showMessageDialog, es un método static. A menudo los métodos static realizan operaciones que son utilizadas con frecuencia, como en este caso el mostrar un mensaje y no requieren que se cree explícitamente un objeto. Más adelante se darán mayores detalles de los métodos static.

El siguiente método que se presentará, es el que permite mostrar un cuadro de texto para solicitar datos al usuario. El método es showInputDialog, este método requiere solo un argumento y es el mensaje que mostrará en el cuadro. Ejemplo:


import javax.swing.JOptionPane;
public class Dialogo {
  public static void main(String[] args){
   
    JOptionPane.showInputDialog("Ingresa tu nombre:");
   
  }//fin main
}//fin class


Al ejecutar el programa, aparece el siguiente cuadro de dialogo:


Al ingresar algún dato y presionar el botón "Aceptar", nada sucede debido a que no hay nada asociado a este cuadro de dialogo. Entonces, lo que se hará a continuación será guardar lo ingresado por el usuario en una variable para que luego esta información sea mostrada en un cuadro de mensaje. Se modificará el programa anterior de la siguiente manera:

import javax.swing.JOptionPane;
public class Dialogo {
  public static void main(String[] args){
    String nombre;
   
    nombre = JOptionPane.showInputDialog("Ingresa tu nombre:");
    JOptionPane.showMessageDialog(null,"Saludos "+ nombre);
   
  }//fin main
}//fin class

Como se puede ver, se creó una variable de tipo String, a la cual llamé "nombre". Esta variable es la encargada de almacenar lo ingresado por el usuario. Posteriormente esta variable es utilizada en MessageDialog.
Ahora, si se ejecuta nuevamente el programa y se escribe por ejemplo la palabra "alumno", esto es lo que debería suceder:




Algo que no he mencionado hasta el momento es que el método showInputDialog, solamente acepta cadenas para sus ingresos. Entonces, si quiero por ejemplo realizar alguna operación con números ¿cómo lo hago?. Para casos como estos, se puede convertir la cadena ingresada en un entero, con el método Integer.parseInt(cadena). Mostraré este método con un ejemplo simple, el cual verificará si el número ingresado es par o impar. Este método lo que hace es convertir la cadena ingresada como argumento a un número entero. En el ejemplo que se muestra a continuación, se solicitó un número el cual fue guardado en la variable "cadena", luego se utilizó el método Integer.parseInt para convertir la cadena ingresada en un número entero. El número conseguido fue almacenado en la variable "entero", con la cual se procedió a realizar las demás operaciones que consisten en verificar si lo ingresado es un número par o no.

import javax.swing.JOptionPane;
public class Pares {
  public static void main(String[] args){
    int entero;
    String cadena;
   
    cadena = JOptionPane.showInputDialog("Ingresa un número");
    entero = Integer.parseInt(cadena);
    
    if(entero % 2 == 0){
     JOptionPane.showMessageDialog(null,"El número es par");
    }
    else{
     JOptionPane.showMessageDialog(null,"El número es impar");
    }
     
  }//fin main
}//fin class




Con estos nuevos conocimientos, es posible retomar "antiguos" programas que se hicieron en capítulos anteriores y reprogramarlos utilizando estos métodos con la finalidad de practicar. A modo de ejemplo, voy a reprogramar aquel programa que servía para calcular el promedio de 5 números.

import javax.swing.JOptionPane;
public class Ejercicios {
  public static void main(String[] args){
    int i, numero, suma = 0;
    double promedio;
    String ingreso;
   
    JOptionPane.showMessageDialog(null, "Ingresa 5 números");
   
    for(i = 1; i <= 5; i++){
      ingreso = JOptionPane.showInputDialog("Ingreso Nro." + i);
      numero = Integer.parseInt(ingreso);
      suma = suma + numero;
    } 
    promedio = suma / 5;
   
    JOptionPane.showMessageDialog(null,"El promedio es "+ promedio);
   
  }//fin main
}//fin class


Actualización Septiembre 2016

Para utilizar esto de los cuadro de texto y mensajes en archivos distintos utilizando un constructor y un método get y set. Mostraré un pequeño programa que solicita que ingrese un nombre:

//Clase principal
import javax.swing.JOptionPane;
public class Inicio{
  public static void main(String []args){
    String nombre;
    Metodos datos = new Metodos();
    nombre = JOptionPane.showInputDialog("Ingresa tu nombre:");
    datos.setNombre(nombre);
    JOptionPane.showMessageDialog(null, "Bienvenido "+ datos.getNombre());
  }//fin main
}//fin class

//Clase de métodos
public class Metodos{
  private String nombre;
  public Metodos(){
    nombre = ""; 
  }
  public void setNombre(String nom){
    nombre = nom;
  }
  public String getNombre(){
    return nombre;
  }

}//fin class



Esto es todo por ahora. Para practicar, se pueden reprogramar algunos de los ejercicios planteados en el capítulo 56, hasta dominar estos nuevos métodos. Hasta la próxima.



Gustavo J. Cerda Nilo
Mayo 2016, Septiembre 2016



http://codigogx.blogspot.cl/2016/08/capitulo-67-java-constructores.html

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...