Programacion Java Sistema de Ventas

Embed Size (px)

Citation preview

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 1

    lde BORARRADOR GUIA DE PROGRAMACION EN JAVA - AVANCES

    Pasos a seguir

    Lo primero que tenemos que hacer una vez instalado el IDE Netbeans, en mi caso estoy usando la

    version 6.9, es crear un nuevo proyecto, para ello nos vamos en Archivo => Proyecto Nuevo

    Esta opcin nos lleva a la ventana de Proyecto Nuevo donde elegimos la opcin Java = > Aplicacin Java,

    clic en el botn Siguiente.

    Este botn nos lleva a la ventana de Nueva Aplicacin Java que tiene dos pasos:

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 2

    1- Seleccionar el proyecto: Aqu asignamos el nombre del proyecto, en nuestro caso systok pero

    ustedes pueden aprovechar y poner el nombre de su proyecto.

    2- Muy importante, se recomienda crear antes una carpeta en el disco C, en este caso lo llame

    systock, entonces en Ubicacin de proyecto elegimos el botn Examinar y buscamos esa carpeta

    creada, tambin dejamos desmarcado las check box Crear clase principal y Configurar como

    proyecto principal, luego clic en el botn Terminar.

    Esto nos lleva a la ventana principal del proyecto donde podemos ver el nuevo proyecto creado.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 3

    Podemos ver los archivos creados en la carpeta systock

    El siguiente paso es crear nuestra ventana principal, para eso nos posicionamos sobre el nombre del

    proyecto clic derecho y elegimos Nuevo (New) = > Otro (Other)

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 4

    Ahora seleccionamos en Categoras la carpeta Swing GUI Forms y en Tipos de Archivos la opcin

    Formulario Jframe, presionamos el botn Siguiente.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 5

    Ahora asignamos un nombre a nuestra clase y elegimos el botn Terminar.

    Vista de la nueva ventana creada.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 6

    A continuacin en esta ventana vamos a crear los mens y los botones de nuestra aplicacin.

    Lo primero que hay que seleccionar para crear un men es elegir en la paleta Mens Swing la opcin

    Barra de Men (JMenuBar )

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 7

    Vista del men agregado Vista de aadir un nuevo men.

    Ahora vamos a Editar nuestros mens con los siguientes nombres:

    Registros

    Consultas

    Reportes

    Utilitarios

    Salir

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 8

    Para ello nos posicionamos sobre el men en nuestro caso File y damos clic derecho sobre el men y

    elegimos la opcin Editar texto.

    Vista de los menus agregados

    Ahora vamos a agregar los items de Men, para ello damos clic sobre el Men y elegimos la opcin

    Aadir de paleta = > Elemento de men (Jmenu Item).

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 9

    Vita del Jmenu Item agregado

    Vista del Jmenu Item agregado en el modulo Inspector.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 10

    Ahora vamos a editar este men Item y le vamos a poner el nombre de Cliente, esto lo podemos hacer

    haciendo doble clic sobre el nombre del JmenuIten o en Propiedades = > text.

    Ahora vamos a agregar ms MenuItems a nuestro men:

    Ciudades

    Barrio

    Direccin

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 11

    Funcionarios

    Cargo

    Proveedores

    Stock.

    Salir

    Ahora podemos ver como quedara nuestro men.

    Ahora creamos una carpeta dentro del proyecto donde vamos a guardar todas las imgenes que vamos a

    utilizar en nuestro proyecto.

    Siguiente paso vamos a personalizar nuestro Men, lo primero que vamos a hacer es cambiar el nombre

    de los mens y de los mens Items, para ello damos clic derecho sobre el nombre del men y elegimos la

    opcin Cambiar nombre de variable.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 12

    Cambiamos el nombre por ejemplo menu_registros.

    Luego cambiamos los restantes por:

    menu_consultas, menu_utilitarios, menu_salir.

    Lo mismo hacemos para todos los menuItem

    miten_clientes, miten_ciudades, miten_barrios, miten_direccion, miten_cargo,

    miten_funcionarios , miten_proveedores, miten_stock, miten_salir

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 13

    Ahora siguiendo con los mens vamos a personalizar los y le agregamos algunos iconos a cada men,

    pero antes creamos una carpeta llamada imagen dentro del directorio del proyecto, esta carpeta debe

    tener todos los grficos que usaremos en nuestro proyecto.

    Ahora seleccionamos el men y nos vamos a las propiedades del men.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 14

    Seleccionamos la opcin Icon, esto nos lleva a la ventana de miten_clientes, seleccionamos el radio

    botn Imagen externa y luego seleccionamos el archivo guardado en la carpeta imagen, en nuestro caso

    el archivo clientes.png

    De esa manera podemos observar el icono que agregamos.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 15

    Ahora vamos a agregarle a nuestro sistema unos accesos directos para acceder a los mens ms

    rpidamente, para ello seleccionamos el men correspondiente y nos vamos a sus propiedades y en la

    propiedad mnemonic ponemos los atajos correspondientes, para Registros por ejemplo podramos usar

    R.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 16

    Y as cambiamos los dems mens, n para consultas, r para Repostes, U para utilitarios y S para salir.

    Hacemos una pre visualizacin de la ventana y presionando la tecla Alt se pueden observar los atajos.

    Ahora repetimos los mismos pasos pero esta vez con los mens Items, por ejemplo C para clientes, en

    Ciudades i, en Barrio B, en Direccin D, en Cargo o, en Funcionarios F, en Proveedores P, en Stock k y en

    Salir s.

    Otra forma de crear accedo directo a los Items de Men es utilizando Atajos, para poder conseguir esto

    tenemos que utilizar la opcin accelerator que se encuentra en la ventana de Propiedades.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 17

    Vamos a agregar un Atajo por ejemplo Ctrl+D.

    Ahora damos clic en el Botn Aceptar.

    Luego ejecutamos muestra venta para observar los cambios.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 18

    Tambin puedo eliminar un menuItem, en nuestro ejemplo eliminaremos el menuItem Stock, para ello

    nos posicionamos sobre l y elegimos la opcin Suprimir.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 19

    Tambin puedo agregar un men dentro del men Registro, para ello me posiciono sobre el men

    Registro, clic derecho sobre ella y elijo la opcin Aadir de paleta => Men.

    Vista del nuevo men insertado.

    Ahora vamos a cambiarle el nombre nuevamente y lo llamaremos Stock, tambin cambiamos el nombre

    de la variable por menu_stock, ahora visualizamos los cambios.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 20

    Ahora agregamos dentro de este men Stock otros menuItems, y eso lo conseguimos de la misma

    manera que vimos en la parte de Mens. Estos serian los pasos a seguir:

    Nos posicionamos sobre el Men Stock, clic derecho y elegimos la opcin Aadir de paleta = > Elemento

    de Men.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 21

    Editamos su nombre por Implantacin, tambin le agregamos todos los atajos vistos anteriormente.

    Luego agregamos dos elementos de men, Entrada de Stock y Salida.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 22

    Ahora vamos a ordenar nuestro men, aremos que el Men salir quede como la ltima opcin, para ello

    nos posicionamos sobre el men Salir, clic derecho y elegimos la opcin Desplazar hacia abajo, si

    queremos conseguir que suba asa arriba deberamos elegir la opcin Desplazar hacia arriba.

    Ahora vamos a insertar separadores dentro de nuestro men, para ello nos vamos en el bloque

    Inspector, nos posicionamos sobre el men Registros, clic derecho sobre el men y elegimos la opcin

    Aadir de paleta = > Separador.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 23

    De esa manera conseguimos insertar un separador dentro del men.

    Ahora veamos como se ve el separador dentro del Inspector.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 24

    Ahora movemos de lugar porque nos coloco el separador en la ltima parte debajo de Salir y yo lo quiero

    colocar encima por ejemplo, para ello nos posicionamos sobre el separador, damos clic derecho y

    elegimos la opcin Desplazar hacia arriba.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 25

    Vista del nuevo separador desplazado.

    Ahora colocamos tres separadores ms para agrupar de cierta manera nuestros Mens.

    Ahora vamos a personalizar un poco nuestra ventana principal, para ello nos vamos en la Paleta, en

    Conectores Swing elegimos la opcin Panel, que luego lo arrastramos sobre nuestra ventana, luego en

    sus propiedades cambiamos el color de fondo para poder manejarlo mejor, para ello en Propiedades

    cambio el background del Panel.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 26

    Solo a modo de ejemplo vamos a insertar un Botn que lo llamaremos cliente, para ello nos vamos en

    Paleta = > Controles Swing y elegimos la opcin Botn.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 27

    Editamos el texto del botn y lo llamaremos Cliente, tambin cambiamos el nombre del botn por

    btn_cliente.

    Ahora para asignar grficos al botn seguimos los mismos pasos que vimos con los Mens, nos vamos en

    Propiedades = > Icon y seleccionamos el grafico.

    Ahora vamos a agregar una imagen de fondo, esta imagen podra ser la de la empresa a quien le estn

    diseando el software del trabajo practico, para ello insertamos de Paleta => Controles Swing una

    etiqueta Label, borramos el texto y seguimos los mismos pasos vistos anteriormente para agregar un

    grafico.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 28

    Ahora solo nos queda compilar nuestro proyecto para ver que todo marcha bien, para ello nos

    posicionamos sobre el nombre del archivo, clic derecho y elegimos compilar o presionamos F9.

    Ahora vamos a cambiar el tamao de la ventana principal, para ello hacemos clic en la ventana y en

    Propiedades = > Cdigo cambiamos la opcin Normas sobre el tamao de los formularios en Generar

    cdigo para cambiar el tamao.

    Con esta opcin nos abre la posibilidad de modificar el tamao, eso lo modificamos en Tamao del

    formulario.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 29

    Ahora vamos a agregarle u titulo a nuestra ventana principal, para ello nos vamos en Propiedades = >

    title y ponemos el titulo por ejemplo Prototipo Sistema de Control de Stock .

    Ahora podemos visualizar los cambios.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 30

    Ahora vamos a crear tres paquetes, uno llamado utilitarios, el otro llamado registros y el otro llamado

    reportes, y para conseguir eso nos posicionamos sobre el nombre del proyecto, clic derecho y elegimos

    la opcin Nuevo = > Paquete Java.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 31

    Esto nos lleva a la ventana Nuevo paquete Java donde ponemos el nombre del Paquete y elegimos el

    botn Terminar.

    Vista del nuevo paquete creado

    Ahora vamos a trabajar un poco con Orientacin a Objetos y vamos a crear una clase Fecha que lo vamos

    a poder utilizar desde cualquier parte del proyecto, con eso nos evitamos la redundancia de cdigo,

    entonces antes de crear la nueva clase vamos a agregar a nuestra ventana principal el componente

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 32

    etiqueta (Label), editamos el texto de la etiqueta a Fecha.:,, cambiamos el nombre por lbl_data y es este

    componente es el que va a recibir la fecha actual del sistema, tambin crearemos otra etiqueta llamada

    hora.

    Ahora vamos a crear una nueva clase utilizando el paquete utilitarios, esta clase es la que va a tener toda

    la codificacin para manejar las fechas, para crear una nueva clase nos posicionamos sobre el paquete

    utilitarios, clic derecho y elegimos la opcin Nuevo = > Otro = > Archivo Java vacio

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 33

    Pulsamos el botn Siguiente .

    Pulsamos terminar y nos aparece el editor de NetBeans totalmente vacio.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 34

    Luego le agregamos los siguientes cdigos a nuestro archivo vacio.

    package utilitarios;

    import java.util.Date;

    import java.text.SimpleDateFormat;

    public class data

    {

    //creamos 4 variables, tienen que ser pblicas para poder utilizar desde la VP

    public String mes, dia, anho, dia_semana, hora;

    SimpleDateFormat formatoHora = new SimpleDateFormat("HH:mm:ss");

    public void leer_hora()

    {

    Date horaActual = new Date();

    hora = formatoHora.format(horaActual);

    }

    public void el_dato() //metodo para leer el dato

    {

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 35

    Date dato = new Date(); //creamos un objeto de tipo Fecha

    // mes = ""+ dato.getMonth();//varia de 0 y el "" convierte a String

    dia = ""+ dato.getDate();

    anho = ""+ (1900+ dato.getYear());//agrega 112 por ser 2012

    // dia_semana = ""+ dato.getDay();//retorna el dia de la semana de 0-6

    //voy a dar formato al la fecha

    switch(dato.getMonth()) //0 a 11

    {

    case 0: mes = "enero"; break;

    case 1: mes = "febrero"; break;

    case 2: mes = "marzo"; break;

    case 3: mes = "abril"; break;

    case 4: mes = "mayo"; break;

    case 5: mes = "junio"; break;

    case 6: mes = "julio"; break;

    case 7: mes = "agosto"; break;

    case 8: mes = "septiembre"; break;

    case 9: mes = "octubre"; break;

    case 10: mes = "noviembre"; break;

    case 11: mes = "diciembre"; break;

    }

    switch(dato.getDay())

    {

    case 0: dia_semana = "domingo"; break;

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 36

    case 1: dia_semana = "lunes"; break;

    case 2: dia_semana = "martes"; break;

    case 3: dia_semana = "mircoles"; break;

    case 4: dia_semana = "jueves"; break;

    case 5: dia_semana = "viernes"; break;

    case 6: dia_semana = "sbado"; break;

    }

    }

    }

    Ahora nos vamos a la ventana principal y all instanciamos e inicializamos nuestra clase data, tambin

    hacemos que nos muestre la fecha en la etiqueta Fecha.:, tambin hacemos que nos muestre la hora.

    Obs: Solo se agregan los cdigos que estn en ROJO, los dems cdigos que podemos observar

    corresponde al cdigo generado por el IDE.

    import javax.swing.*;

    import utilitarios.*;

    import registro.*;

    public class Ventanaprincipal extends javax.swing.JFrame {

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 37

    /** Creates new form Ventanaprincipal */

    data mostrar_datos;

    public Ventanaprincipal() {

    initComponents();

    mostrar_datos = new data();

    mostrar_datos.el_dato();//primero tengo que ejecutar este metodo para despus ejecutar el resto

    lbl_data.setText("Hoy es "+mostrar_datos.dia_semana+ " "+mostrar_datos.dia+" de

    "+mostrar_datos.mes+" del ao "+mostrar_datos.anho);

    }

    Como se darn cuenta, la hora aparece pero no lo actualiza, para conseguir que se actualice vamos a

    agregar a nuestro proyecto un componente llamado TimerBeans, este componente timer beans que nos

    sirve para ejecutar procesos en paralelo.

    Primero hay que descargar el componente TimerBeans.jar y guardarlo en la carpeta donde esta nuestro

    Java en C:\Archivos de programa\Java\jdk1.6.0_01\jre\lib\ext y pegar all el archivo.

    Luego tenemos que instalarlo dentro de la paleta, para ello nos vamos en Herramientas = > Paleta =>

    Componente Swing/AWT .

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 38

    Seleccionamos el botn Aadir de archivo JAR

    Buscamos el archivo en :\Archivos de programa\Java\jdk1.6.0_01\jre\lib\ext

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 39

    Presionar el botn Siguiente, vemos la ventana de Instalar componentes para paleta, seleccionamos el

    componente TimerBean y presionamos el Botn Siguiente.

    Esto nos lleva a la ventana donde tenemos que elegir la carpeta donde quedara el componente, lo vamos

    a colocar en la categora Beans personalizados y presionamos el botn Terminar.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 40

    Vista del nuevo componente agregado.

    Presionamos el botn Cerrar y vemos como quedo la paleta Beans personalizados.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 41

    Ahora vamos a hacer que actualice la hora de la ventana principal y para eso vamos a usar el

    componente Timer, para ello lo seleccionamos y lo arrastramos para colocarlos encima de la ventana

    principal.

    Este componente agregado a la ventana principal no es visible sobre ella pero podemos encontrarlo en

    Inspector = > Otros componentes.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 42

    Y para ejecutar el timer cada 1 segundo debemos agregarle cdigo al timer, para ello nos posicionamos

    sobre el Timer, clic derecho y elegimos la opcin Eventos = > Timer => onTime.

    Ahora agregamos el cdigo correspondiente dentro del mtodo y lo ponemos en dentro del mtodo de

    la ventana principal el cdigo timer1.start().

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 43

    El cdigo que aparece abajo es lo que tenemos que colocar dentro del mtodo.

    mostrar_datos.leer_hora();

    lbl_hora.setText("Hora actual: "+mostrar_datos.hora);

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 44

    Ahora veamos cmo podemos hacer para salir del programa presionando el men Salir, para ellos nos

    posicionamos sobre el men, clic derecho y elegimos la opcin Eventos = > Mouse = > mouseClicked.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 45

    Esto nos lleva al editor donde ponemos el cdigo System.exit(0);, con esto podemos salir del programa,

    este mismo cdigo se aplicara en el caso que tuvisemos un Botn Salir.

    Ahora siguiendo con nuestros ejemplos vamos a trabajar con la apariencia de nuestro proyecto, con el

    Look and Feel de la aplicacin, para ello creamos un metodo lookandfeel y a este mtodo vamos a

    agregarle el siguiente cdigo al nuestra ventana principal. Pero primero definimos la variable set_look

    tipo String

    Luego creamos nuestro mtodo dentro de la Ventanaprincipal llamado lookandfeel()

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 46

    Este es el cdigo del mtodos lookandfeel().

    public void lookandfeel()

    {

    try

    {

    //La variable set look tiene que estar definida arriba como una variable String

    UIManager.setLookAndFeel(set_look);

    SwingUtilities.updateComponentTreeUI(this);

    }

    catch (Exception error)

    {

    JOptionPane.showMessageDialog(null, error);

    }

    }

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 47

    Una vez creado el mtodo pasamos al siguiente paso que es agregar los cdigos que faltan dentro de la

    Ventana Principal.

    Primero declaramos nuestra variable y le asignamos un valor String set_look =

    "com.sun.java.swing.plaf.metal.MetalLookAndFeel";

    Para poder llamar a esas apariencias, vamos a crear cuatro men tem en el men Utilitarios que

    llamaremos Look And Feel Windows, Look And Feel Liquid, Look And Feel Metal y Look And Feel -

    Nimbus

    Ahora vamos a codificar cada uno de ellos, para eso colocamos el cursor sobre el Men, clic derecho y

    elegimos Eventos = > Action => actionPerformed

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 48

    Estos Cdigos que aparecen en ROJO son los que tenemos que usar dentro del actionPerformed de cada

    Item de Men.

    Windows

    Liquid

    set_look = "com.birosoft.liquid.LiquidLookAndFeel";

    lookandfeel();

    Metal

    set_look = "javax.swing.plaf.metal.MetalLookAndFeel";

    lookandfeel();

    Nimbus

    set_look = "com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel";

    lookandfeel();

    Esto nos debera dar un error en dos de nuestras llamadas porque todava no importamos los

    componentes liquidlnf.jar y gtkswing.jar, al importarlos no nos debera dar ese error, para salvar este

    error nos vamos a biblioteca y all Agregamos el archivo JAR.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 49

    Primero tenemos que agregar cada uno de los jar gtkswing,liquidlnf, etc. Ahora podemos ver los JAR

    agregados a nuestra biblioteca.

    Luego ejecutamos nuestra ventana y all deberamos elegir en el men las diferentes opciones.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 50

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 51

    Programacin de las ventanas

    Vamos a continuar con la programacin de nuestro Sistema de Ventas, para ello vamos a comenzar

    creando un paquete al que llamaremos py.com.systven.bean, en ella vamos a guardar todas nuestras

    clases beans, como sabemos las clases Beans son clases persistentes o sea que vamos a tener que

    guardar los datos manipulados en ella, para crear un nuevo paquete nos posicionamos sobre la opcin

    Paquetes de fuentes clic derecho Nuevo => Paquete Java.

    Vista de la creacin de nuevo Paquete

    Ahora le asignamos su nombre py.com.systven.bean, luego presionamos el botn Terminar.

    Vista del Paso 2 de la creacin de Paquete java

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 52

    Lo primero que tenemos que hacer es crear una conexin con nuestra Base de datos, para ello nos

    vamos en la pestaa Servicios y en Prestaciones encontramos Bases de datos, la seleccionamos,

    hacemos clic derecho y elegimos la opcin Nueva conexin de base de datos.

    Vista de la prestacin Nueve conexin de Base de Datos.

    Luego en la ventana Nueva Conexin de Base de datos completamos los datos de la conexin, lo primero

    que definimos es el Nombre del controlador que para nuestro ejemplo es MySQL, luego el servidor que

    es localhost, continuamos con el puerto que para el MySQL es 3306, tambin completamos el nombre

    de la Base de Datos, para este ejemplo se llama sistvent, tambin completamos el Nombre de usuario y

    la Contrasea que para nuestro ejemplo est vaca (Obs: si definieron un usuario y contrasea diferente

    compltenla con esos datos)

    Vista de la ventana Nueva conexin de base de Datos.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 53

    Luego podemos observar que ya aparece en Prestaciones nuestra nueva conexin.

    Vista de la nueva conexin creada.

    Ahora que ya tenemos nuestra conexin vamos a crear nuestro primer AMB, el que vamos a crear es de

    Unidad de Productos, para eso vamos a trabajar con la tabla unidad_prod del lado del servidor.

    Y como vamos a hacer eso??

    Para ello nos vamos a posicionar sobre nuestro paquete view, damos clic derecho, elegimos la opcin

    Nuevo => Otro.

    Vista de los pasos a seguir para la creacin de un formula de Ejemplo Maestro/Detalle.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 54

    Esta accin nos lleva a la ventana Archivo Nuevo en Categoras elegimos Formularios de Interfaz grfica

    y en Tipos de Archivos elegimos la opcin Formulario de ejemplo maestro/detalle, hacemos clic en el

    botn Siguiente.

    Vista del paso 1 para la creacin del formulario.

    En el paso 2 tenemos que asignar un nombre a nuestra clase, para nuestro ejemplo lo vamos a llamar

    UnidadProductoView, hacemos clic en el botn Siguiente.

    Vista del paso 2 para la creacin del nuevo formulario.

    Luego en el paso 3 elegimos la conexin que nosotros queremos utilizar, para nuestro ejemplo vamos a

    usar la que definimos anteriormente.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 55

    Vista del paso 3 Tabla maestro.

    Tambin en esta ventana tenemos que definir qu tabla vamos a usar que para nuestro ejemplo es

    unidad_prod, una vez definida esta tabla podemos observar toda informacin sobre la Tabla maestro, o

    sea todos los datos que nos van a mostrar en la parte de arriba, esto ser una grilla, para java esto sera

    una JTable. Presionamos el botn Siguiente.

    Vista del paso 3 Tabla Maestro.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 56

    Para este ejemplo nosotros vamos a utilizar en el detalle campos de texto, o sea va a ser la misma tabla

    arriba y la mista tabla abajo, solo que en la cabecera vamos a tener los datos en un JTable y en el detalle

    campos de texto (TextField).

    Luego hacemos clic en el botn Terminar.

    Vista del paso 4 Opciones de detalle.

    Vamos a esperar un rato para ver como Netbeans va a organizar los datos que est creando.

    Vista de la creacin del formulario.

    Y ahora?? Bingo ya tenemos nuestra ventana UnidadProductoView creada.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 57

    Vista de la nueva ventana UnidadProductoView.

    Netbeans creo por nosotros un formulario, en la cabecera un JTable donde podemos observar el cdigo

    y la descripcin de la unidad.

    Vista del JTable creado.

    Tambin podemos observar en el detalle dos campos de textos con sus respectivas etiquetas Cod Unidad

    y Desc Unidad.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 58

    Vista de las etiquetas y campos de textos creados.

    Ahora veamos cuales son los archivos que nos cre Netbeans?

    Este formulario que estamos observando corresponde al archivo UnidadProductoView.java y tambin

    nos cre otro archivo llamado UnidadProd.java, vamos a conversar dentro un rato sobre este archivo.

    Vista de los archivo UnidadProductoView.java y UnidadProd.java.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 59

    Tambin nos cre otro paquete llamado META-INF y dentro de ese paquete nos cre el archivo llamado

    persistence.xml, vamos a conversar dentro un rato sobre este archivo.

    Vista del paquete META-INF junto con el archivo persistence.xml

    Ahora si nosotros nos vamos a la pestaa Inspector vamos a poder ver todos los componentes que

    contiene nuestra ventana.

    Vista de los componentes creado por Netbeans.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 60

    En el grafico por ejemplo podemos observar como Netbeans nos asign un nombre a nuestro JTextField,

    de la misma forma para las etiquetas y botones.

    En la opcin Otros componentes podemos observar que Netbeans esta utilizando un EntityManager,

    una Query y una List, tambin vamos a conversar un poco mas tarde sobre estos componentes.

    Vista de los componentes creados dentro de Otros componentes.

    Ahora vamos a abrir nuestra Ventana Principal que lo tenemos en nuestro paquete de vistas (view).

    Vista del men Unidad

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 61

    Y aqu en Unidad nosotros vamos a agregar un evento, para ello la seleccionamos, hacemos clic derecho

    y elegimos las opciones Eventos => Action => actionPerformed.

    Vista del nuevo evento a agregar.

    Y es en este punto donde nosotros vamos a agregarle un evento para nuestro men item Unidad.

    Vista del mtodo vaco creado.

    Nuestro evento tiene que hacer lo siguiente, llamar al main a la ventana UnidadProductoView y pasarle

    unos argumentos, entonces nosotros vamos a llamar a nuestro mtodo main directamente aqu.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 62

    Vista del cdigo agregado dentro del evento

    Ahora que es lo que tiene que hacer el mtodo main en nuestro

    UnidadProductoView.java??

    Para ello nos vamos a UnidadProductoView.java y en la fuente vamos a tener que agregar algunos

    cdigos, el mtodo main se encuentra al final.

    Vista del mtodo main.

    Vemos que esta instanciando a nuestro JFrame, luego esta colocando una instancia de

    UnidadProductoView dentro del Frame, si nosotros observamos en el Inspector vemos que

    UnidadProductoView es un JPanel, entonces el coloca este JFrame dentro del Frame, luego Netbeans

    asigna una operacin de EXIT_ON_CLOSE al frame, esa parte lo vamos a comentar, luego coloca un .pack

    y por ultimo lo hace visible.

    Ahora nuevamente dentro del actionPerformed vamos a llamar a nuestro main y le vamos a pasar

    dentro de ella el ttulo que va a tener nuestra ventana, lo vamos a pasar en el main como un parmetro.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 63

    Vista de los nuevos cdigos agregados.

    Luego nos vamos nuevamente al mtodo main y agregamos una lnea de cdigo mas.

    Vista del nuevo cdigo agregado

    Esto nos va a dar un pequeo error y vemos que para que esta clase pueda ser acezada de forma interna frame.setTitle(args[0]);

    Vista del tipo de error a corregir.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 64

    Entonces ese parmetro tiene que ser de tipo final, lo cambiamos y ahora vemos que ya no nos ese

    inconveniente.

    Vista del error corregido

    Ahora vamos a cambiar de lugar el archivo UnidadProd.java, para ello seleccionamos el archivo

    UnidadProd.java, lo arrastramos y soltamos sobre el paquete py.com.systvent.bean.

    Vista del archivo a ser cambiado.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 65

    Esta accin hace que aparezca la ventana Mover clase, luego simplemente elegimos la opcin

    Reestructurar para que Netbeans haga los imports necesarios y sobrescriba los cdigos.

    Vista de la ventana Mover clase.

    Luego Netbeans se toma unos segundos para terminar con la reestructuracin.

    Vista de la venta Mover clase en el momento de la reestructuracin.

    Ahora podemos observar dentro de nuestro paquete py.com.systvent.bean el archivo UnidadProd.java

    reestructurado.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 66

    Vista de archivo dentro del paquete py.com.systvent.bean

    Una vez que ya cambiamos de lugar nuestro archivo lo vamos a ejecutar nuestra Ventana Principal para

    ver cmo est quedando, para ello nos posicionamos sobre ella, hacemos clic derecho y elegimos la

    opcin Ejecutar archivo.

    Vista de la accin Ejecutar archivo.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 67

    Vista de la ventana de Sistemas Ventas

    Luego nos vamos al men Unidad para llamar a la ventana Registro de Unidad.

    Vista del men Unidad.

    Ahora ya tenemos lista nuestra ventana Registro de Unidad de Producto.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 68

    Vista de la ventana Unidad de Producto.

    Ahora vamos a agregar un nuevo registro para ello hacemos clic en el botn New.

    Vista del nuevo campo disponible.

    Con esta accin tenemos los campos de textos disponibles, ac tenemos que tener cuidado por el cdigo

    de la unidad porque esta en Autoincremento, eso lo podemos ver si miramos la estructura de nuestra

    tabla en la Base de Datos.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 69

    Vista del valor Autoincremento del lado de la Base de Datos.

    Entonces por el momento lo vamos a dejar en blanco el Cdigo y completamos la Descripcin de la

    unidad, para la descripcin vamos a colocar Lts (Litros).

    Vista de la nueva descripcin agregada.

    Observemos que al escribir en el campo de texto ya aparece en la lista de la cabecera, luego hacemos clic

    en el botn Save, ahora nos vamos a la Base de Batos para ver si realmente guardo nuestro registro.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 70

    Vista del nuevo registro agregado.

    Vemos que nuestros datos fueron persistidos dentro de la Base de datos.

    Tambin podemos observar estos datos desde Netbeans para ello nos vamos a Prestaciones, elegimos el

    nombre de la base de datos que para nuestro ejemplo es sistvent, luego el nombre de nuestra tabla

    unidad_prod, hacemos clic derecho sobre ella y elegimos la opcin Mostrar datos.

    Vista de las tablas desde Netbeans.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 71

    Vista del nuevo registro agregado desde Netbeans.

    Ahora vamos a tratar de seguir la lgica que Netbeans utilizo para generar todos estos cdigos.

    En primer lugar Java tiene una API llamada Java Persistence API que es conocido como JPA, Netbeans

    utiliza esta API conjuntamente con un Framework SWING para que los datos guardados dentro de la

    Base de Datos estn sincronizados o mapeados con los elementos de SWING y que elementos son

    esos??

    Vista de las Propiedades de SWING

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 72

    Son todos los elementos que observamos dentro de la paleta de Propiedades.

    Pero como es que Netbeans hace eso??

    Esta ventana UnidadProductoView tiene una JTable, los JTextField y los botones.

    Veamos las Propiedades de cada uno de ellos.

    Vista de las propiedades de JTAble.

    Si nosotros nos vamos en la pestaa Enlace tambin conocido como Binding, observamos que nuestra

    JTable esta vinculada a una lista (list).

    Vista de la pestaa Enlace.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 73

    En la pestaa Eventos ella no aparece ningn evento por el momento.

    Vista de la pestaa Eventos.

    Y en la pestaa Cdigo el nombre de la variable es masterTable y no se observa ninguna generacin de

    cdigo importante aqu, la parte interesante es que nuestra JTable esta vinculada con una lista (list).

    Vista de la pestaa cdigo.

    Ahora si hacemos clic en nuestro JTextfield en sus Propiedades vamos a poder observar que tiene un

    enlace a un Elemento de masterTable, ese elemento es nuestro JTable de la cabecera, tambin

    podemos observar que tiene una opcin enabled, esto nos indica que esta habilitada cuando un

    elemento del JTable de la cabecera es seleccionado.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 74

    Vista de la pestaa Enlace

    En la pestaa Eventos no se observan eventos importantes.

    Vista de la pestaa Eventos.

    En la pestaa Cdigo tampoco vemos que tenga un cdigo importante generado, podemos observar que

    tiene una Serializacion para pasar los datos a la Base de Datos, el Nombre de la variable y el tipo de

    Modificador de la variable es privada.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 75

    Vista de la pestaa Cdigo.

    Ahora miremos que tenemos en las Propiedades de nuestros botones, comenzamos con el botn New.

    En la pestaa Eventos podemos observar que tenemos un evento del tipo actionPerformed.

    Vista de la pestaa Eventos.

    En la pestaa Enlace observamos que no tiene enlace por el momento.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 76

    Vista de la pestaa Enlace.

    En Propiedades observamos que son las propiedades comunes a un botn.

    Vista de la pestaa Propiedades.

    En la pestaa Cdigo observamos el Nombre de la variable, el tipo de Modificador de variable, el

    Cdigo generado, etc.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 77

    Vista de la pestaa Cdigo.

    Ahora pasamos al botn Delete en la pestaa enlace observamos que tiene un enabled, que pone

    disponible la fila seleccionada en el JTable.

    Vista de la propiedad Enlace del botn Delete

    Tambin podemos observar que tiene un evento asociado a ella llamado deleteButtonActionPerformed.

    Vista de la propiedad Eventos del botn Delete.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 78

    En la pestaa Cdigo tiene los mismos valores que el observado en el botn New.

    Vista de las propiedades de la pestaa Cdigo del botn Delete.

    Los mismos valores podemos observar para los botones Refrech y Save, ambos tienen eventos.

    Ahora cmo es que los datos aparecen aqu en la cabecera del JTable y en los TextField??

    En primer lugar si nosotros nos vamos en la pestaa Inspector podemos observar los tres componentes

    que contiene la opcin Otros Componentes.

    Vista de los componentes desde el Inspector.

    Tambin esos mismos componentes aparecen aqu en nuestra paleta de Propiedades, en el enlace

    Persistencia de Java (JavaPersistence), all nosotros tenemos un Administrador de entidades, tambin

    tenemos una Consulta y tambin tenemos un Resultado de una consulta.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 79

    Vista de los componentes desde la paleta.

    Veamos que son cada uno de estos componentes.

    El Administrador de entidades es nuestra entityManager y que es lo que hace??

    Vista del componente entityManager.

    Nuestra entityManager ella va a estar enlazado a una Unidad de Persistencia, en este caso est siendo

    llamada sistventPU (PU PersistenceUnit).

    Vista de las propiedades del entityManager.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 80

    Pero donde esta esa unidad de Persistencia que vemos all??

    Esa Unidad de persistencia la vamos a encontrar dentro del paquete META_INF y dentro de ella el

    archivo persistence .xml.

    Vista del archivo persistence.xml dentro del paquete META-INF.

    Veamos ahora sus Propiedades, observamos que tiene como nombre persistence y que su extensin es

    xml.

    Vista de las propiedades del archivo persistence.xml

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 81

    Le damos doble clic y nos lleva directo a la ventana de Diseo.

    Vista Diseo del archivo persistence.xml.

    Al elegir la pestaa Operador XML nos lleva directamente a la fuente, aqu podemos observar que la

    unidad de persistencia (persistence-unit) es sistventPU, entonces lo que tenemos aqu es un archivo de

    persistencia que controla esa persistencia con la Base de Datos o sea es nuestro archivo de

    mapeamiento, el tipo de transaccin es local, Netbeans esta usando como proveedor de persistencia

    toplink, eso es lo que nos muestra nuestro provider que va a implementar JPA, aqu estamos teniendo

    una visin general, el otro proveedor que utiliza JPA que ya vimos en la clase pasada es Hibernate,

    existen otros pero en este caso nosotros estamos utilizando toplink de Oracle.

    Vista Operador xml del archivo persistence.xml.

    Vemos tambin que el crea una clase de persistencia que es la clase UnidadProd, al rato vamos a abrir

    esa clase y veremos que tiene dentro de ella, luego tenemos las propiedades de conexin que son el

    usuario, la contrasea, la url y el driver que estamos utilizando, para nuestro ejemplo es mysql.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 82

    Vista de las propiedades del archivo persistence.xml.

    Bien vimos que tiene ese archivo persistence-unit explorando el cdigo xml.

    Ahora enlazado a esa entityManager nosotros tenemos una Query, tambin ahora ya sabemos que esa

    entityManager esta enlazado directamente a nuestra Entity o Entidad.

    Esa entidad es un EnterpriceJavaBeans o sea nuestro archivo UnidadProd.java que es una JB

    (JavaBeans).

    Vista del archivo UnidadProd.java

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 83

    Ahora veamos que contiene nuestro JavaBeans.

    Podemos observar que es un bens normal pero con algunas anotaciones muy interesantes como

    @Entity, @Table, @NamedQueries, etc.

    Vista de las anotaciones que contiene el archivo UnidadProd.java

    La anotation @Entity nos esta informando que los que tenemos aqu es una entidad que esta vinculada a

    una Base de Datos.

    El anotation @Table nos indica el nombre de la tabla y el esquema que tiene que utilizar, en este caso

    nosotros no definimos ningn esquema para nuestra Base de Datos.

    Tambin tenemos un anotations @NamedQueries que lo que hace es traernos una serie de consultas,

    podemos observar en el select que no esta utilizando el SQL normal que solemos usar sino que esta

    usando un SQL propio del JPA y lo que esta haciendo all es una consulta para cada campo de la tabla

    unidad_prod.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 84

    Vista de la consultas dentro de los @NamedQuery.

    Despus vemos que comienza all con la definicin de la clase UnidadProd que implementa Serializable.

    Tambin observamos la anotacin @Id que nos indica que es la clave primaria, en este caso la clave

    primaria es CodUnidad, este el nombre que le asigna Java y del lado de la base de datos observamos que

    el nombre del campo es cod_unidad.

    Tambin observamos que Netbeans declara aqu todos los atributos de forma privada respetando as el

    principio de encapsulamiento y despus observamos que Netbeans fue declarando los mtodos gets y

    los sets, todos ellos con visibilidad pblica.

    Vista de los atributos y mtodos creados.

    Entonces despus de esto nosotros sabemos que tenemos una query y que esa query en sus

    propiedades ella tiene una consulta SELECT u FROM UnidadProd u, tambin observamos que est

    vinculada a nuestro entityManager que est apuntando directamente a nuestro Bean y que este Bean

    esta a la vez vinculado o mapeado con una tabla del lado de la Base de Datos.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 85

    Vista de las propiedades del componente query.

    En la pestaa Eventos no observamos nada interesante y en el de Cdigo tampoco, por lo tanto nuestra

    query va a estar ejecutando una consulta travs de aquel bean solo que esa consulta no puede venir

    directamente para nuestra Cabecera JTable ni para nuestro detalle JTextField y entonces que es lo que

    sucede ac??

    Esta consulta ella genera directamente una lista y dicha lista es observada dentro del Query.

    Vista del componente List dentro del Inspector.

    Veamos las Propiedades que contiene nuestra lista:

    En la pestaa Cdigo podemos observar que ella crea aqu una lista.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 86

    Vista de las Propiedades del componente list.

    Y esta lista es la que va a estar vinculada a nuestro query, tambin esa lista va a estar marcada como

    Observable o sea nuestra lista ser observable, eso significa que todos los cambios que realicemos en

    nuestra query va a tener influencia en la lista, entonces si hacemos cambios del lado de la Base de Datos

    esos cambios van a ser visible en nuestro JTable, porque??

    Porque si nos fijamos en las propiedades de nuestro JTable ella esta vinculada a nuestra lista

    Vista de la ventana masterTable Pestaa Enlace.

    Resumiendo ahora ya sabemos que necesitamos de un Bean marcado con la anotacin @Entity y ese

    bean va a estar mapeado a una de mis tablas del lado de la BD y todo este cdigo Netbeans nos genero,

    luego observamos que necesitamos de los tres componentes vistos anteriormente para poder persistir

    los datos, nuestro entityManager va a estar enlazado a una Unidad de persistencia que es un archivo

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 87

    xml, despus nos creo nuestro Formulario grafico con todas las vinculaciones vistas anteriormente,

    siendo que entityManager apunta a una query que a la vez apunta a una consulta y la lista que apunta

    para el query, la JTable apunta a esa lista y los JTextField apuntan a una de las columnas de nuestro

    JTable.

    Ahora continuando con el diseo de nuestra ventana nosotros no queremos que aparezca ese cdigo all

    ya que es generado, entonces vamos a sacar eso de ah siguiendo los siguientes pasos:

    Seleccionamos nuestra JTable, hacemos clic derecho y elegimos las opciones Enlazar => elements.

    Vista de los pasos a seguir

    Esto nos lleva a la ventana Enlace masterTable.elements donde pasamos la opcin codUnidad del lado

    de Disponible, luego hacemos clic en el botn Aceptar.

    Vista de la ventana Enlace masterTable.elements.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 88

    Ahora nos vamos en nuestra ventana UnidadProductoView y all eliminamos la etiqueta Cod Unidad y el

    campo de texto que corresponde al Cdigo de Unidad.

    Vista de la etiqueta y campo de texto a eliminar.

    Ahora podemos observar los cambios realizados a nuestra ventana.

    Vista de la Ventana UnidadProductoView.

    Como podemos realizar de forma manual nuestro AMB sin usar la

    opcin Formulario de Ejemplo Maestro / Detalle??

    Ahora vamos a ver cmo podemos hacer nuestro registro de una forma manual, entonces no vamos a

    usar esa opcin formulario Maestro / Detalle, entonces lo primero que vamos a hacer es crear nuestro

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 89

    archivo bean, para nuestro ejemplo vamos a tomar la tabla departamento, para ello seguimos los

    siguientes pasos:

    Nos posicionamos sobre el paquete py.com.systvent.bean, hacemos clic derecho Nuevo => Otro.

    Vista de los pasos a seguir para crear un archivo bean.

    Esta accin nos lleva a la ventana Archivo donde en Categoras elegimos Persistence y en Tipo de

    Archivos elegimos la opcin Clases entidad a partir de bases de datos.

    Vista Paso 1 para la creacin de una Clase entidad a partir de bases de datos.

    Hacemos clic en el botn Siguiente, esta accin nos lleva a la ventana Nuevo Clases entidad a partir de

    bases de datos, donde tenemos que elegir en Tablas disponibles la tabla a partir de la cual vamos a

    generar nuestro archivo, para nuestro ejemplo elegimos departamento, luego hacemos clic en el botn

    Agregar.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 90

    Vista paso 2 Tablas de bases de datos.

    Ahora podemos observar que departamentos ya se encuentra del lado de Tablas seleccionadas,

    pulsamos el botn Siguiente.

    Vista del paso 2 de la creacion de una Nueva Clase entidad a partir de una base de datos.

    En el paso 3 podemos observar que Netbeans va a generar el nombre de la clase aqu que ser

    Departamento y tambin que nos va a generar las anotaciones para los campos persistentes, ahora

    hacemos clic en el botn Siguiente.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 91

    Vista del paso 3 Clases entidad

    Esta accin nos lleva al paso 4 donde aparecen las diferentes Opciones de mapeo que podemos elegir,

    finalmente hacemos clic en el botn Terminar.

    Vista del paso 4 Opciones de mapeo.

    Ahora podemos observar nuestra clase entidad creada con todas las anotaciones y mtodos que vamos a

    necesitar.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 92

    Vista del cdigo generado del archivo Departamento.java

    Muy bien ahora que creamos nuestra clase bean pero nos falta crear nuestra clase visual, entonces

    vamos a continuar con eso, como ya se comento anteriormente el tipo de formulario que estamos

    utilizando es JFrame, entonces vamos a crear uno ahora para ello seguimos los siguientes pasos:

    Nos posicionamos sobre nuestro paquete py.com.systvent.view, hacemos clic derecho sobre ella y

    elegimos las opciones Nuevo => Formulario JFrame.

    Vista de los pasos a seguir para la creacin de un formulario Jframe.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 93

    Vamos a darle un nombre a nuestro formulario, en nuestro ejemplo lo vamos a llamar

    DepartamentoView, luego le damos clic en Terminar.

    Vista del paso 2 Nombre y ubicacin.

    Ahora ya podemos observar nuestro nuevo formulario JFrame creado.

    Vista del nuevo formulario creado.

    Ahora vamos a comenzar insertando una Lista dentro de nuestro formulario, para ello nos vamos a

    nuestra Paleta y en Contenedores Swing elegimos Tabla.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 94

    Vista del componente Tabla dentro de la Paleta.

    Lo nico que tenemos que hacer ac es seleccionar la tabla y colocarlo sobre nuestro formulario.

    Vista de la nueva tabla agregada.

    Luego vamos a tener que agregar a nuestra ventana una etiqueta, un campo de texto y 4 botones.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 95

    Vista de los componentes agregados

    Ahora lo que vamos a hacer es cambiar los nombres a los botones, asignar los nombres a las variables de

    los botones por ejemplo btn_Nuevo, btn_Eliminar, etc.

    Vista de los cambios a los nombre de botones

    Ahora nos falta adicionar nuestra Persistencia de Java entonces vamos a comenzar agregando nuestro

    Administrador de entidades que ser nuestro entityManager, la seleccionamos y luego la soltamos

    sobre nuestra ventana DepartamentoView.java.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 96

    Vista del componente Administrador de entidades agregado.

    En el siguiente paso agregamos nuestra Consulta, para ello la seleccionamos y luego la soltamos sobre

    nuestra ventana DepartamentoView.java.

    Vista del componente Consulta agregado.

    Por ltimo agregamos nuestro Resultado de la consulta, para ello seguimos los mismos pasos vistos

    anteriormente, la seleccionamos para despus soltarla sobre la ventana DepartamentoView.java.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 97

    Vista del componente Resultado de la consulta agregado

    Ahora veamos en el Inspector los componentes que agregamos a nuestro formulario.

    Vista de los componentes agregados.

    Ahora vamos a comenzar a configurar los componentes agregados, primero vamos a configurar nuestro

    entityManager y esa configuracin lo vamos a hacer en sus Propiedades.

    En la ventana de Propiedades podemos observar que ella esta apuntando a sistventPU y el tipo de

    flushMode esta en Predeterminado.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 98

    Vista de las propiedades del entityManager.

    En las pestaas Enlace y Eventos no tiene nada y Cdigo cambiamos el nombre a entityManager.

    Vista de las Propiedades de la pestaa Cdigo del entityManager.

    Ahora vamos a configurar nuestra Query, para ello nos vamos en sus Propiedades, agregamos una

    consulta SELECT d FROM Departamento d, notemos que en este punto agregamos el nombre de nuestro

    Bean y no el nombre de la tabla que est del lado de la Base de Datos, nos aseguramos que la opcin

    entityManager apunte al entityManager que agregamos anteriormente.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 99

    Vista de las Propiedades del componente query.

    En la pestaa Cdigo cambiamos el nombre de la variable por query.

    Vista de las Propiedades de del query en la pestaa Cdigo.

    Ahora vamos a configurar nuestra lista y para ello seguimos los mismos pasos vistos anteriormente, en la

    pestaa Propiedades hacemos que apunte a query y marcamos para que sea observable.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 100

    Vista de la ventana list1 Propierties.

    En Eventos no tenemos nada y en la pestaa Cdigo cambiamos el Nombre de la variable a list, pero

    tambin ac en Parmetro de tipo tenemos que agregar el Bean con el cual vamos a estar trabajando,

    que en este caso es .

    Vista de las Propiedades de la pestaa Cdigo.

    Muy bien entonces de esta manera ya configuramos nuestros componentes de persistencia, ahora

    vamos a seguir configurando los otros Componentes Visuales.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 101

    Vamos a comenzar con nuestra tabla, la seleccionamos y luego hacemos los cambios en sus propiedades,

    el primer cambio que vamos a hacer es agregarle un enlace a nuestra lista, para ello en la pestaa Enlace

    en la opcin elements hay que indicarle donde se encuentra nuestra lista para ello hacemos clic en el

    selector.

    Vista de la propiedad elements de la pestaa Enlace.

    Esto nos lleva a la ventana de Enlace donde tenemos que Enlazar la fuente y la expresin.

    Vista de la ventana Enlace.

    Luego desplegamos las opciones de Enlazado de fuente y elegimos la opcin list, ahora hacemos clic en

    el botn Aceptar.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 102

    Vista de la opcin List dentro de la ventana Enlace.

    Luego en Seleccionado aparecen los dos atributos pero para nuestro ejemplo solo necesitamos el

    atributo nombreDepartamento.

    Vista de los campos seleccionados.

    Entonces vamos a pasar el atributo codDepartamento del lado de Disponible, luego hacemos clic en el

    botn Aceptar.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 103

    Vista de los elementos Disponible y Seleccionado.

    Ahora podemos observar nuestra ventana con tabla enlazada a nuestra lista de Departamentos.

    Vista de los cambios ocurridos en la ventana DepartamentoView.

    Ahora el otro cambio que tenemos que hacer es en la pestaa Cdigo, en Nombre de la variable vamos a

    cambiar el nombre Jtable1 por masterTable.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 104

    Vista del Nombre de variable Table1

    Vista del cambio de Nombre de variable a masterTable.

    Ahora vamos a pasar a configurar las propiedades de nuestro JTextField, entonces seleccionamos

    nuestro JTextField le damos clic derecho Enlazar => text.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 105

    Vista del JTextField a enlazar.

    Nosotros sabemos que nuestro JTextField tiene que estar vinculado a nuestro masterTable y el Enlazado

    de expresin en ${selectedElement.nombreDepartamento}

    Vista de la ventana Enlace JTextField.

    En la pestaa Avanzado marcamos la opcin Valor de fuente ilegible y dejamos las opciones por

    defecto, luego elegimos el botn Aceptar.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 106

    Vista de la pestaa Avanzado de la ventana JTextField1.

    Ahora el otro cambio que tenemos que en las Propiedades dentro de la pestaa Enlace, en enabled

    tenemos que agregar algunas opciones.

    Vista de la pestaa Enlace

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 107

    En la pestaa Enlace la opcin Enlazado de fuente tiene que apuntar a nuestra masterTable y Enlazado

    de expresin a ${selectedElement != null}, o sea cuando el elemento seleccionado sea distinto de nulo,

    en la pestaa avanzado no tocamos nada y por ultimo hacemos clic en el botn Aceptar.

    Vista de la ventana Enlace.

    Ahora siguiendo con la configuracin en la pestaa Cdigo cambiamos el Nombre de la variable por

    nombreDepartamentoField.

    Vista de las Propiedades de la pestaa Cdigo.

    Muy bien con esto terminamos la configuracin de estos componentes visuales ahora vamos a

    configurar cada uno nuestros botones.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 108

    Vista de la ventana DepartamentoView.

    Lo primero que vamos a hacer es modificar las Propiedades de nuestro botn Eliminar, para ello

    nuevamente nos vamos en sus Propiedades y en la pestaa Enlace escribimos el siguiente cdigo en la

    opcin enabled masterTable[${selectedElement != null}].

    Vista del cdigo agregado en la propiedad enabled de la pestaa Eventos.

    Luego vamos a agregarle a cada uno de nuestros botones los eventos correspondientes, comencemos

    con el botn Nuevo, para ello seguimos los siguientes pasos:

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 109

    Nos posicionamos sobre nuestro botn Nuevo, hacemos clic derecho Eventos => Action =>

    actionPerformed.

    Vista de los pasos a seguir para agregar un nuevo evento.

    Ahora podemos observar la vista del evento actionPerformed del botn Nuevo.

    Vista del evento actionPerformed agregado.

    A este evento le tenemos que agregarle los siguientes cdigos:

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 110

    py.com.systven.bean.Departamento d = new py.com.systven.bean.Departamento();

    entityManager.persist(d);

    list.add(d);

    int row = list.size()-1;

    masterTable.setRowSelectionInterval(row, row);

    masterTable.scrollRectToVisible(masterTable.getCellRect(row, 0, true));

    Vista del cdigo agregado.

    Ahora vamos a continuar con el cdigo del botn Eliminar, para ello seguimos los mismos pasos vistos

    anteriormente, nos posicionamos sobre nuestro botn Eliminar, hacemos clic derecho y elegimos las

    opciones Eventos => Action => actionPerformed.

    Vista de los pasos a seguir para agregar un nuevo evento.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 111

    Ahora podemos observar la estructura del nuevo evento agregado.

    Vista del nuevo evento agregado

    Ahora le agregamos los siguientes cdigos a nuestro evento

    int[] selected = masterTable.getSelectedRows();

    List toRemove = new ArrayList(selected.length);

    for (int idx=0; idx

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 112

    Vista de la opcin Reparar importaciones.

    En la ventana Reparar todos los imports podemos observar las importaciones que nos faltan y hacemos

    clic en el botn OK.

    Vista de la ventana Repara todos los imports.

    Ahora en la fuente podemos observar todos los imports que hizo Netbeans .

    Vista de los paquetes importados

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 113

    Vista del cdigo sin el error anterior.

    Ahora vemos que ya desaparecieron los errores de importacin

    Ahora vamos a agregar los eventos del botn Actualizar, tambin seguimos los mismos pasos vistos

    anteriormente.

    Vista de los pasos a seguir para crear un nuevo evento.

    Vista de la estructura del evento creado.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 114

    Luego agregamos los siguientes cdigos a nuestro evento.

    entityManager.getTransaction().rollback();

    entityManager.getTransaction().begin();

    java.util.Collection data = query.getResultList();

    for (Object entity : data) {

    entityManager.refresh(entity);

    }

    list.clear();

    list.addAll(data);

    Vista de los cdigos agregados.

    Ahora vamos a programar nuestro botn Guardar siguiendo siempre los mismos pasos vistos

    anteriormente con los otros botones.

    Vista de los pasos a seguir para agregar un nuevo evento.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 115

    Vista del nuevo evento agregado al botn Guardar.

    Ahora a nuestro evento le agregamos las siguientes lneas de cdigo:

    try {

    entityManager.getTransaction().commit();

    entityManager.getTransaction().begin();

    } catch (RollbackException rex) {

    rex.printStackTrace();

    entityManager.getTransaction().begin();

    List merged = new ArrayList(list.size());

    for (py.com.systven.bean.Departamento d : list) {

    merged.add(entityManager.merge(d));

    }

    list.clear();

    list.addAll(merged);

    }

    Vista de los nuevos cdigos agregados.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 116

    Como podemos observar nos da un pequeo error y es porque nos faltan algunas bibliotecas, entonces

    vamos a importarlas, para ello hacemos clic derecho sobre la fuente y elegimos la opcin Reparar

    importaciones.

    Vista de la opcin Reparar importaciones.

    Vista de las bibliotecas importadas.

    Muy bien ahora nos falta agregar algunos cdigos en el constructor de nuestra ventana

    DepartamentoView.

    Vista del mtodo constructor de la ventana DepartamentoView.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 117

    Ahora le agregamos los siguientes cdigos :

    if (!Beans.isDesignTime()) {

    entityManager.getTransaction().begin();

    }

    Vista de los nuevos cdigos agregados.

    Reparamos las importaciones que nos faltan para salvar este error.

    Vista de la opcin Reparar importaciones.

    Ahora podemos observar las importaciones de las bibliotecas que Netbeans hizo para nosotros.

    Vista de las bibliotecas importadas.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 118

    Muy bien ahora nos vamos a nuestra Ventana Principal y ah vamos a configurar nuestro men

    Departamento siguiendo los mismos pasos vistos anteriormente.

    Vista de los mens de la Ventana Principal.

    Vista de los pasos a seguir para agregar un evento al tem de men Departamento.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 119

    Ahora agregamos los siguientes cdigos dentro del evento agregado.

    String args[] = new String[1];

    args[0] = "Registro de Departamento";

    DepartamentoView.main(args);

    Vista de los cdigos agregados.

    Ahora vamos a agregar algunos cdigos al mtodo main de nuestra ventana DepartamentoView, vamos

    a agregar los siguientes cdigos, tambin no hay que olvidar que en mtodo main el tipo de parmetro

    que le pasamos debe ser final.

    DepartamentoView d = new DepartamentoView();

    d.setVisible(true);

    d.setTitle(args[0]);

    Vista de los cdigos agregados dentro del mtodo main.

    Bueno ahora solo nos queda probar si est funcionando como queremos, para ello nos vamos a la

    Ventana principal y de ah vamos a llamar a nuestra ventana de Departamento.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 120

    Vista la opcin Ejecutar archivo.

    En la Ventana Principal elegimos el tem de men Departamento.

    Vista del tem de men Departamento.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 121

    Esta accin nos lleva a la ventana de Registro de Departamento.

    Vista de la ventana Registro de Departamento.

    Ahora vamos a presionar el botn Nuevo, luego cargamos los datos

    Vista del dato agregado dentro del campo de texto.

    Ahora vamos a nuestra Base de Datos para ver si nos guardo nuestro nombre de Departamento

    Vista del registro agregado dentro de la Base de Datos.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 122

    Vemos que nos guardo nuestro nuevo registro con el cdigo autogenerado.

    Ahora si observamos nuestro detalle notamos que Ventas no aparece en la cabecera (JTable) le falta

    esta funcionalidad, entonces esa parte de la funcionalidad queda como tarea para ustedes, al final

    nuestra ventana debera verse de esta manera.

    Vista de la ventana Registro de Departamento con todas sus funcionalidades.

    Programacion paso a paso de la ventana Cliente

    Ahora vamos a continuar con nuestro ABM, el siguiente ejemplo es un poco mas complejo que lo visto

    anteriormente, ahora vamos a crear el formulario para Registro de clientes, para ello vamos a seguir los

    siguientes pasos:

    Nos posicionamos sobre el paquete py.com.systvent.view, hacemos clic derecho sobre ella y elegimos

    las opciones Nuevo => Formulario de ejemplo maestro/detalle.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 123

    Vista de los pasos a seguir para crear un nuevo formulario Ejemplo maestro/detalle.

    Esta accin nos lleva al paso 2 de la ventana de Nuevo Formulario maestro/detalle donde tenemos que

    agregar el nombre de nuestra ventana, para nuestro ejemplo lo vamos a llamar ClienteView, hacemos

    clic en el botn Siguiente..

    Vista del paso 2 de la ventana Nuevo Formulario maestro/detalle.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 124

    Recordemos que es nuestro cdigo del lado de la Base de Datos es autonumerico as que no vamos a

    necesitar del cdigo del cliente, entonces en el paso 3 Tabla maestro elegimos la Tabla de la Base de

    datos y el campo cod_cli lo pasamos del lado de Columnas disponibles, luego hacemos clic en el botn

    Siguiente.

    Paso 3 de la ventana Nuevo Formulario maestro/detalle Tabla maestro

    En este punto 4 no vamos a usar en el detalle Cuadros de textos sino que vamos a usar otra tabla, por

    eso seleccionamos la opcin cliente_direccion, tampoco en este punto queremos que aparezca el cdigo

    de la direccin ya que es autonumerico, entonces pasamos el campo cod_direccion del lado de

    Columnas disponibles, por ultimo hacemos clic en el botn Terminar.

    Vista del paso 4 Opciones de detalle.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 125

    Esta accin puede durar algunos segundos porque Netbeans nos esta creando todos los cdigos que

    vamos a necesitar.

    Vista de la creacin del Formulario Maestro/Detalle.

    Tambin en nuestro proyecto observemos que Netbeans nos creo dos archivos Beans que son

    Cliente.java y ClienteDireccion, vamos a pasar estos archivos al paquete beans, para ello los

    seleccionamos y lo arrastramos sobre el nombre del paquete.

    Vista de los archivos beans generados.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 126

    Esta accin hace que aparezca la ventana Mover Clases, hacemos clic en el botn Reestructurar para

    que Netbeans nos reestructure todos los cambios necesarios.

    Vista de los archivos a ser reestructurados.

    Ahora vamos a observar que ya tenemos nuestros archivos bean justo donde queremos en nuestro

    paquete py.com.systvent.bean.

    Vista de los archivos dentro del paquete py.com.systvent.bean.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 127

    Ahora vamos a nuestra Ventana Principal y vamos a llamar desde all a la nueva ventana creada

    Vista del nuevo evento a agregar al men tem Cliente.

    Ahora dentro del evento agregamos los siguientes cdigos:

    String args[] = new String[1];//creamos un vectorcito aqu de una sola posicin;

    args[0] = "Registro de Clientes";//es este el parmetro que le pasamos a nuestro mtodo main

    ClienteView.main(args);

    Vista de los cdigos agregados.

    Ahora nos vamos a la ventana ClienteView y modificamos el cdigo del mtodo main, ponemos que el

    tipo de parmetro a recibir ser final y asignamos el titulo a la ventana frame.setTitle(args[0]);.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 128

    Vista de los cdigos agregados dentro del mtodo main.

    Ahora solo nos queda probar nuestra ventana, para ello nos vamos a la Ventana principal y desde all

    vamos a llamar a nuestra ventana de Clientes.

    Vista del men tem Cliente de la Ventana principal.

    Esta accin nos lleva a la ventana Registro de Clientes, donde presionamos el botn New y agregamos

    los datos de un nuevo registro para nuestro Cliente y tambin agregamos los datos de sus direcciones,

    luego presionamos el botn Save.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 129

    Vista de la ventana Registro cliente con los nuevos registros agregados.

    Ahora vamos a comprobar si realmente nos guardo nuestro nuevo registro dentro de la Base de Datos,

    para ello nos vamos nuestra tabla cliente.

    Vista del registro agregado en la tabla cliente.

    Tambin observamos los datos en nuestra tabla cliente_direecion.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 130

    Vista del registro agregado dentro de la tabla cliente_direccion.

    Ahora vamos a cambiar de lugar la forma de visualizacin de los elementos en nuestro JTable, para ello

    seguimos los siguientes pasos:

    Seleccionamos el JTable, hacemos clic derecho sobre ella y elegimos la opcin Contenido de la tabla.

    Vista de los pasos a seguir para visualizar el Contenido de la tabla

    Esta accin nos lleva a la ventana de Personalizar dialogo donde podemos cambiar el ttulo, el ancho, si

    la columna puede ser redimensionable, etc.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 131

    Vista de la ventana Personalizar dialogo.

    Tambin podemos cambiar de posicin los campos, luego presionamos el botn Cerrar.

    Vista de los cambios realizados

    Hacemos lo mismo para el Detalle siguiendo los mismos pasos vistos anteriormente.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 132

    Vista de los cambios agregados dentro de los JTables.

    Ahora para mejorar un poco el aspecto de nuestras ventanas vamos a agregarle unos paneles, para ello

    seguimos los siguientes pasos, nos posicionamos sobre nuestro JTable, hacemos clic derecho sobre ella y

    elegimos las opciones Incluir en => Panel.

    Vista de los pasos para agregar un nuevo Panel a la ventana.

    Seguimos los mismos pasos para nuestro detalle, primero la seleccionamos y luego hacemos clic derecho

    sobre ella y elegimos las opciones Incluir en = >Panel.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 133

    Vista de los pasos para agregar un nuevo Panel a la ventana.

    Tambin vamos a agregar nuestros botones dentro de un Panel, siempre siguiendo los mismos pasos

    vistos anteriormente.

    Vista de los pasos para agregar botones dentro de un Panel.

    Ahora para tener un mejor control de la distribucin de nuestros componentes visuales, para ello

    hacemos clic sobre nuestra ventana y elegimos las opciones Activar gestor de distribucin => Diseo

    Absoluto.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 134

    Vista de los pasos a seguir para activar un Gestor de distribucin

    Ahora vamos a agregarles colores de fondo a nuestros paneles y observamos los cambios.

    Vista de ventana con los paneles agregados.

    Luego siguiendo con nuestros Panel vamos a sus propiedades y elegimos un borde, para nuestro ejemplo

    elegimos la opcin Borde con titulo y en Titulo agregamos Datos de Cliente.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 135

    Vista de las propiedades del JPanel1

    Seguimos los mismos pasos para nuestro Panel del detalle, para nuestro ejemplo lo vamos a llamar

    Direcciones de Cliente.

    Vista de las propiedades del JPanel2

    Ahora podemos observar los cambios realizados a nuestra ventana Registro de Clientes.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 136

    Vista de los cambios agregados.

    Ahora agregamos un nuevo botn al que llamaremos Editar Cliente, tambin renombramos los botones

    de la cabecera New por Ingresar cliente, Delete por Eliminar Cliente, tambin renombramos los botones

    del detalle, el botn New por Ingresar Direccin, el botn Delete por Eliminar Direccin, el botn

    Refresh por Cancelar Actualizacin y el botn Save por Guardar Datos.

    Vista de la ventana ClienteView con la edicin de sus botones.

    Ahora vamos a crear una nueva ventana Jdialog, para ello seguimos los siguientes pasos, nos

    posicionamos sobre nuestro paquete py.com.systvent.view, hacemos clic derecho Nuevo => Otro.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 137

    Vista de los pasos a seguir para la creacin de una ventana Jdialog

    Esta accin nos lleva al paso 1 de la Ventana Archivo Nuevo donde tenemos que Escoger el tipo de

    archivo, para ello en Categoras elegimos Formularios de Interfaz grafica y en Tipos de Archivos

    elegimos Formulario JDialog, luego hacemos clic en el botn Siguiente.

    Vista del paso 1 de la ventana Archivo nuevo.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 138

    Esta accin nos lleva al paso 2 de la creacin de nuestra ventana Nuevo JDialog Form donde tenemos

    que asignarle un nombre, para nuestro ejemplo lo vamos a llamar ClienteEditView, luego hacemos clic

    en el botn Terminar.

    Vista del paso 2 Nombre y ubicacin de la nueva ventana JDialog.

    Ahora podemos observar la nueva ventana JDialog creada.

    Vista de la nueva ventana JDialog

    Ahora nosotros debemos colocar cada una de las columnas que se encuentran en la cabecera dentro del

    JDialog, para nuestro ejemplo solo vamos a seleccionar el Nombre, Profesin, Empresa, Tel. Empresa,

    RUC y Referencia, el resto de las columnas queda como tarea para que ustedes lo agreguen, entonces

    vamos a agregar seis campos de textos, seis etiquetas y dos botones Confirmar y Cancelar a nuestra

    nueva ventana.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 139

    Vista de los componentes agregados a nuestra ventana JDialog.

    Ahora vamos a asignarle un Nombre de variable a cada uno de nuestros componentes, por ejemplo para

    el campo de texto Profesin lo vamos a llamar profesionTF, a Nombre le vamos a llamar nombreTF y as

    renombramos todos los componentes.

    Vista de las propiedades del JTextField al cual se ha cambiado el nombre de variable.

    Ahora vamos a vincular cada campo de texto de la ventana con su correspondiente dentro de la

    cabecera de la ventana Registro de Clientes, para nuestro ejemplo solo vamos a tomar estos seis campos

    que se ven en la ventana y el resto pasa como tarea para ustedes.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 140

    Ahora cmo es que vamos a vincular estos campos?

    Podramos intentar haciendo clic derecho sobre el campo de texto probando con la opcin Enlazar = >

    text

    Vista de la opcin Enlazar => text

    Con esta accin podemos observar que no conseguimos obtener estos valores que esta en la cabecera

    de otra ventana ClienteView.

    Vista de los enlaces disponibles para el campo de texto nombreTF.

    Entonces qu podemos hacer ac??

    Lo que podemos hacer en este caso es crear una Propiedad dentro de nuestra ventana

    ClienteEditView.java y agregar esa funcionalidad dentro de ella, veamos cmo podemos hacer eso.

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 141

    Para agregar un propiedad son posicionamos en la fuente de nuestra ventana ClienteEditView, hacemos

    clic derecho sobre ella y elegimos la opcin Insertar Cdigo.

    Vista de los pasos a seguir para agregar una Propiedad

    Lo que queremos ac es agregar una Propiedad, entonces elegimos de entre todas las propiedades

    desplegadas la opcin Agregar Propiedad, observemos que con esta accin tambin podemos agregar

    mtodos gets y sets, delegar mtodos, etc.

    Vista de la opcin Agregar Propiedad

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 142

    Ahora tenemos que definir cual ser el nombre de esa propiedad para nuestro ejemplo ser

    registroActual, tambin tenemos que definir el tipo, para ello hacemos clic en Examinar y all elegimos

    que ser del tipo cliente.

    Vista de la ventana Encontrar tipo

    Seleccionamos las siguientes opciones, que sea protegida (protected), que nos Cree los mtodos get y

    set y que nos Genere soporte para cambio de propiedad.

    Entonces Netbeans nos va a crear un registroActual, va a tener un get y set de tipo Cliente y tambin

    una propiedad de cambios.

    Vista de las propiedades a agregar

  • Ingeniera del Software II Gua de Programacin

    Miguel Angel Recalde. Pgina 143

    Esto es necesario para que nosotros podamos actualizar los datos de nuestra edicin con los datos de la

    lnea actual del JTable del formulario ClienteView.java.

    Entonces el prximo paso es hacer una modificacin en el mtodo set que creamos.

    public void setRegistroActual(Cliente registroActual) {

    Cliente oldRecord = this.registroActual;

    this.registroActual = registroActual;

    propertyChangeSupport.firePropertyChange("registroActual", oldRecord, registroActual);

    }

    Entonces con esto actualizamos ac el valor anterior para el valor actual.

    Vista de los cdigos agregados dentro del mtodo set.

    Ahora vamos a modificar el actionPerformed del botn Ingresar cliente, para ello seguimos pasos ya

    conocidos por nosotros, nos posicionamos sobre ella, hacemos clic derecho Eventos => Action =>

    actionPerformed.

    Vista de los pasos a seguir para crear un nuevo evento