lunes, 22 de febrero de 2016

Mi primer proyecto.

vamos a crear una ventana con dos textos, es decir, vamos a realizar nuestro “Hola Profe”.

Para comenzar crearemos una clase llamada ProyectoPrueba, luego importaremos javax.swing. Utilizaremos JLabel y JFrame, por lo que podríamos hacer lo siguiente:
import javax.swing.JFrame;
import javax.swing.JLabel;

Como ya he mencionado anteriormente, para crear una ventana, nos basaremos en JFrame, por lo que nuestra clase, tendrá que heredar de JFrame:
public class ProyectoPrueba extends JFrame{}

Con esto, PoyectoPrueba hereda los métodos y atributos de JFrame.
Como nuestro objetivo en este tutorial es mostrar texto dentro de una ventana, tendremos que recurrir a la clase JLabel, cuyo objetivo es mostrar un determinado texto dentro de un JFrame. Nosotros no vamos a crear un texto, crearemos dos. En el primero pondrá “¡Hola Profe!” y en el segundo “Proyecto Andres Olarte”. El segundo texto estará situado debajo del primero.

Primero definiremos dos objetos de la clase JLabel, que se llamarán texto1 y texto2:

 private JLabel texto1, texto2;

Luego haremos el constructor, que quedaría de esta manera. 
 public ProyectoPrueba() {
 setLayout(null);
 texto1=new JLabel("¡Hola Profe!");
 texto2=new JLabel("Proyecto Andres Olarte");
 texto1.setBounds(100,100,200,40);
 texto2.setBounds(70,140,200,40);
 add(texto1);
 add(texto2);
 }

Ahora haremos otra clase que se llamara "Principal" donde crearemos el main.

public class Principal {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ProyectoPrueba ventana=new ProyectoPrueba();
  ventana.setBounds(500,250,300,250);
  ventana.setVisible(true);
  ventana.setResizable(false);
 }

Este seria el código fuente completo:
import javax.swing.JFrame;
import javax.swing.JLabel;
/**
 * 
 * @author Andres Olarte
 * @version 22/02/2016
 *
 */

public class ProyectoPrueba extends JFrame{
 private JLabel texto1, texto2;
 public ProyectoPrueba() {
 setLayout(null);
 texto1=new JLabel("¡Hola Profe!");
 texto2=new JLabel("Proyecto Andres Olarte");
 texto1.setBounds(100,100,200,40);
 texto2.setBounds(70,140,200,40);
 add(texto1);
 add(texto2);
 }

}

public class Principal {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ProyectoPrueba ventana=new ProyectoPrueba();
  ventana.setBounds(500,250,300,250);
  ventana.setVisible(true);
  ventana.setResizable(false);

 }

}

Referencias:

  • http://peixe.org.mx/sos/tutVent/
  • Andres Olarte.






Interfaz gráfica en java

Llamamos Interfaz Gráfica GUI (Graphical User Interface) al conjunto de componentes gráficos que posibilitan la interacción entre el usuario y la aplicación. Es decir ventanas, botones, listas, cajas de diálogo, campos de texto, etc.


Para esto utilizaremos la librería Swing.

Librería Swing:
Es un paquete que hace parte de la Java Foundation Classes o más conocida como JFC, la cual provee herramientas o facilidades para la construcción de GUI's o interfaces Gráficas de Usuario (graphical user interface).

Podemos decir que Swing es la evolución del AWT (Abstract Window Toolkit), la cual al igual que Swing es un conjunto de librerías enfocadas a la construcción de interfaces, solo que con esta se presentaron algunos problemas en cuanto a portabilidad principalmente cuando se desarrollaban aplicaciones para diferentes sistemas operativos, pues el comportamiento de los componentes gráficos en ocasiones podían variar y producir errores. 

A continuación veremos la herencia de Java Swing




JFrame y JDialog.

  • Un JFrame debe ser la ventana principal de nuestra aplicación y sólo debe haber una.
  • Las ventanas secundarias de nuestra aplicación deben ser JDialog.

Los motivos de esto son los siguientes.
Al mostrar el JFrame un botón en la barra de herramientas de windows y tener método para cambiar el icono, es la ventana ideal como ventana principal de nuestra aplicación y sólo debe haber una. Nos permite cambiar el icono y sólo debe haber un botón en la barra de herramientas de windows para nuestra aplicación.

Si usamos un JDialog como ventana principal, no tenemos botón en la barra de herramientas y no hay forma fácil de cambiarle el icono.

Los JDialog son ideales para ventanas secundarias porque admiten una ventana padre. Si la VentanaA es padre del JDialogB, entonces el JDialogB siempre estará por delante de VentanaA, nunca quedará por detrás. Lo ideal es que hagamos nuestras ventanas secundarias como JDialog cuyo padre sea el JFrame principal. De esta forma los JDialog siempre serán visibles por encima del JFrame y no se irán detrás ni quedarán ocultos por el JFrame.

JComponent.
Todos los componentes heredan de javax.swing.JComponent.

JtextField.
Los JTextField son campos donde el usuario puede ingresar información que se le solicite, por ejemplo en un formulario para registrarse a algún servicio. En esta entrada aprenderemos a cómo crear este elemento.

Referencias:
https://geekytheory.com/tutorial-14-java-swing-interfaces-graficas/
http://users.dcc.uchile.cl/~lmateu/CC60H/Trabajos/edavis/swing.html