Desarrollo de tutoriales de Java
T001: Creando un GUI con JFC/Swing
Introducción En la presente entrada, se explica la creación de una Interfaz Gráfica de Usuario utilizando el paquete de clases Swing. Se utiliza las Clases JFrame, JLabel, JTextField, JList, JTable, JButton. Para la creación de aplicaciones se utiliza el IDE Netbeans. Marco teórico JFC y Swing JFC significa Java Foundation Classes, que abarca un conjunto de funcionalidades para la creación de de Interfaces Gráficas de Usuario (GUI) adicionando acabados con excelentes gráficos y proporcionando la capacidad de interacción a las aplicaciones de Java. En la siguiente tabla mostramos las funcionalidades de JFC:
Ejemplos de aplicaciones Creación y compilación de una aplicación en Swing package presentacion; /** * * @author hernan */ import javax.swing.JFrame; import javax.swing.JLabel; public class PrincipalIU extends JFrame { /** * Crea y muestra el GUI. es preferente mostrar la GUI * dentro dentro de un hilo. */ private static void crearYMostrarGUI() { //Crear y modificar una ventana. JFrame frame = new JFrame("HolaMundoSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Adicionar y localizar una etiqueta "Hello World". JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); //Mostrar la ventana. frame.pack(); frame.setVisible(true); } public static void main(String[] args) { //planificar el trabajo para disparar un evento en un hilo: //creando y mostrando la aplicación GUI. javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { crearYMostrarGUI(); } }); } } Conclusiones |
T002: Java DataBase Connectivity - JDBC
Introducción En la presente entrada proporcionamos una ilustración de la gestión de la persistencia de datos en una aplicación de Java utilizando un Sistema de Gestión de Base de Datos. El API JDBC permite la conectividad de las aplicaciones Java y un especifico Sistemas de Gestión de Bases de Datos. Para las demostraciones practicas se utilizara el gestor de bases de datos PostgreSQL. Marco teórico Ejemplos de aplicaciones Conclusiones |
T004: Tipos Genéricos y Java Framework Collections
T003: Serialización de Objetos para persistencia en Java
I) Objetivo
II) Marco conceptual Almacenar objetos en un Archivo La serialización consiste en convertir un objeto en una secuencia de bytes para guardarlo en un archivo o enviarlo por la red, y luego reconstruirlo, con los valores que tenía al ser serializado, para su posterior utilización. La serialización es muy utilizada en las bases de datos relacionales, pero tiene también otras aplicaciones. En Java, esta capacidad de serialización, es decir, de guardar información sobre un objeto para luego recuperarla, se llama persistencia. Para que un objeto sea serializable basta con que la clase a la que pertenezca, o una superclase de ésta, implemente la interfaz Serializable o su subinterfaz Externalizable, ambas en el paquete java.io. Implementar Serializable es muy sencillo, porque no tiene métodos. En realidad actúa como un marcador que indica que los objetos de una clase (o de sus subclases) son serializables, de esta manera: class MiClase implements Serializable Para utilizar correctamente Serializable, hay que tener en cuenta algunos detalles.
Veamos todo esto con un ejemplo: public class MiClase implements Serializable{ private int variable1; private static double variable2; private transient OtraClase oc = new OtraClase(); } class OtraClase{} //OtraClase no es serializable Cuando un objeto de la clase MiClase sea serializado, sólo su variable "variable1" será serializada. La variable "variable2" no, porque es static y por tanto pertenece a la clase y no al objeto, y la variable oc tampoco porque está marcada transient. Si no añadiéramos el modificador transient tendríamos una NotSerializableException, pero también podemos utilizarlo cuando no nos interese serializar algo. III) Practicas 1) Ejemplo de serialización y recuperación de objetos. Implementar una Clase Agenda Serializable package demo; /** * * @author hernan */ import java.io.*; class Agenda implements Serializable { private String nombre; private String p_Apellido; private String s_Apellido; /*getters y setters*/ public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public String getP_Apellido() { return p_Apellido; } public void setP_Apellido(String p_Apellido) { this.p_Apellido = p_Apellido; } public String getS_Apellido() { return s_Apellido; } public void setS_Apellido(String s_Apellido) { this.s_Apellido = s_Apellido; } public Agenda(String nombre, String p_Apellido, String s_Apellido) { super(); this.nombre = nombre; this.p_Apellido = p_Apellido; this.s_Apellido = s_Apellido; } @Override public String toString() { return (getNombre() + " " + getP_Apellido() + " " + getS_Apellido()); } } Implementar una clase para Serializar objetos de la clase Agenda
package demo; import java.io.*; /** * * @author hernan */ public class Deserealizacion { public static void main(String[] args) { Agenda a1 = null; Agenda a2 = null; try { // abrir o Recuperar un archivo de disco FileInputStream fis = new FileInputStream("agenda1.ser"); // Stream para recuperar o reconstruir objetos ObjectInputStream ois = new ObjectInputStream(fis); //El método readObject() recupera el objeto a1 = (Agenda) ois.readObject(); a2 = (Agenda) ois.readObject(); ois.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println(a1); System.out.println(a2); } }
IV) Tarea 1) Probar la serialización con clases que tienen atributos transient y static. Interpretar los resultados. 2) Defina una clase Persona para encapsular el nombre de una persona y su dirección. El nombre y la dirección debe ser del Tipo Nombre y Tipo de Dirección. Escriba un programa que permite que los nombres y direcciones que deben introducirse desde el teclado, se almacenen como objetos de Persona en un archivo. Una vez que el archivo existe se añaden nuevas entradas al archivo. 3) Extender el programa anterior para listar las personas del archivo.
V) Referencias |