A continuacin se desarrollar una aplicacin que utiliza algunos de estos controles:
1. Ingrese a NetBeans 2. Una vez en el IDE seleccione Archivo (File) en el men principal y ah Proyecto nuevo (New Proyect) o presione conjuntamente las teclas [Ctrl] + [Maysculas] + [N] para crear un proyecto NetBeans
3. Cree un proyecto nuevo de tipo Aplicacin Java (Java Application), tal como se muestra en la siguiente figura.
4. Pulse el botn Siguiente (Next) y en la pantalla post siguiente nombre al proyecto como dskCapitulo4, y seleccione la ubicacin del proyecto en una ubicacin conocida dando clic en Navegar (Browse). Por ltimo, pulse el botn Terminar (Finish). Con ello se crea una especie de men inicial.
5. Posteriormente, pulse con el botn derecho del mouse sobre el paquete donde est guardado el formulario dskCapitulo4 y agregue un nuevo formulario de tipo JFrame y nmbrelo frmMenu.
6. Una vez creado el formulario debe seleccionar Archivo (File) Propiedades del proyecto (Proyect Propierties) y en las opciones que aparecen seleccionar Ejecutar (Run) y seleccionar frmMenu como clase principal (Main Class). Puede pulsar el botn Examinar (Browse) para buscar el formulario principal de la aplicacin.
7. Establezca el tipo de distribucin que tendrn los objetos en el formulario frmMenu. Pulse sobre el cuerpo del formulario y pulse el botn derecho del mouse. En el men de contexto que aparece seleccione la opcin Activar gestor de distribucin (Set Layout) y ah elija Diseo de borde (Border Layout). Esto permitir dividir la ventana del JFrame en cinco zonas: norte, sur, este, oeste y centro.
8. Agregue una barra de men, pulse sobre el cuerpo del formulario con el botn derecho del mouse. Bastar con arrastrarlo hasta el cuerpo del JFrame (Formulario).
9. Al principio el formulario presentar slo dos opciones: File y Edit. Podr fcilmente editar el ttulo de estas opciones pulsando sobre el mismo y modificar el texto que presenta. Otra forma de editar el texto es pulsando con el botn derecho del mouse sobre la opcin y seleccionar Editar Texto en el menpu de contexto que aparece. Cambie File por el texto Formulario y Edit por Salir.
10. Pulse sobre el cuerpo del formulario y agregue un objeto Panel de Escritorio (JDesktopPane) al mismo. Se mostrar una regin oscura debajo del men creado. JDesktopPane se utiliza en NetBeans para contener otros objetos de tipo ventana como puede ser un JInternalFrame, es una aplicacin MDI (Multiple Document Interface).
11. Cambie el nombre a este panel pulsando sobre el mismo con el botn derecho del mouse y seleccione la opcin Cambiar Nombre de variable (Change Variable Name) Ponga el nombre PanelInterno. 12. Habilite el men creado en el formulario frmMenu y pulse con el botn derecho del mouse sobre l. En el men de contexto que aparece seleccione Aadir de la Paleta (Add From Palette) la opcin Elemento de men (Menu Item) para agregar un nuevo tem en el men. En el texto de este tem escriba Mantenimiento de Empleados.
13. Agregue ahora un nuevo formulario (JInternalFrame) de nombre frmMantEmpleados, dando clic derecho en el paquete donde estn guardados los formularios que hemos creado. Si no aparece en los objetos actuales vaya al final de las opciones y pulse Otros (Other) y bsquelo entre los objetos que aparecen ah.
14. A continuacin pulse con el botn derecho del mouse sobre el formulario (frmMantEmpleados) y en el men de contexto que aparece seleccione Aadir de paleta Contenedores Swing Panel. Coloque este objeto en la parte superior del formulario. Coloque otro similar en la segunda mitad de la parte inferior
15. Seleccione el formulario de la primera mitad superior y pulse el botn derecho del mouse, escoja Propiedades (Properties) y luego pulse sobre la propiedad Borde(Border). Elija Borde con Ttulo. En el ttulo escriba Datos Generales del Empleado y pulse la tecla ENTER Haga lo mismo con el panel de la segunda mitad inferior del formulario. En el ttulo de este otro panel escriba Lista de Empleados.
Este paso tambin se puede hacer desde el men Paleta (Palette) que se encuentra a la derecha de la pantalla y el men Propiedades (Properties)
Recuerde que la forma de nombrar un objeto es: Selecciona el objeto a nombrar y da clic derecho sobre l. Selecciona Cambiar Nombre de la Variable (Change Variable Name) del men contextual. Nombrar al objeto con el nombre deseado. Nombrar al objeto con un nombre conocido es til para referirnos a l de forma sencilla cuando programemos los eventos del formulario.
16. El producto terminado se muestra en la siguiente figura. Los objetos del formulario frmMantEmpleados ETIQUETA NO. TIPO DE COMPONENTE ATRIBUTOS PRINCIPALES
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 2 17. Ahora corresponde programar los objetos del formulario, inclusive este. En primer lugar debemos ingresar un JInternalFrame dentro del formulario frmMenu, damos clic al formulario (seleccionamos algn elemento del formulario) y en la ventana de Navegacin (Navigator) que se encuentra debajo de la ventana Proyectos (Projects) o si no en el men Ventana (Window) seleccionando la ventana correspondiente.
Damos clic derecho sobre Otros componentes (Other Components) Agregar de la paleta (Add From Palette) Swing Containers Internal Frame.
Dentro del formulario nos vamos a su cdigo fuente dando clic en Source de la barra de herramientas de Editor (Editor ToolBar) si no est damos clic en el men ver (View) seleccionamos Show Editor ToolBar. En el constructor del formulario ingresamos el siguiente cdigo public frmMenu() { initComponents(); this.setVisible(true); this.setExtendedState(6); }
18. Pasaremos a programar el tem Mantenimiento de Empleados del men Formulario de la barra de men (MenuBar) del mismo formulario con el que estamos trabajando (frmMenu). Solo abrimos el tem mencionado dando clic al la opcin Formularios y damos clic derecho sobre dicho tem, seleccionamos Eventos (Events) Action ActionPerformed.
Nos mandar al cdigo de dicho elemento, escribimos el siguiente cdigo. frmMantEmpleados frm = new frmMantEmpleados(); PanelInterno.add(frm); frm.setVisible(true);
19. Ahora toca programar el formulario frmMantEmpleados Ingresamos al cdigo fuente del formulario y escribimos las siguientes variables en el inicio de la clase. private int anyoActual, fila; Object[] filas = new Object[6]; javax.swing.table.DefaultTableModel modeloTabla = new javax.swing.table.DefaultTableModel();
20. Procedemos a programar el evento inicializador de nuestro formulario con los procedimientos que se ejecutarn cuando ste se cargue. public frmMantEmpleados() { initComponents(); CargarAnyos(); configurarModelo(); detEdad(); modeloTabla.addRow(filas); lblEmpleados.setModel(modeloTabla); }
21. Ahora programamos el mtodo CargarAnyos() con el siguiente cdigo. void CargarAnyos(){ int i; javax.swing.DefaultComboBoxModel modeloCombo = new javax.swing.DefaultComboBoxModel(); java.util.Calendar fecha = java.util.Calendar.getInstance(); anyoActual = fecha.get(java.util.Calendar.YEAR); for (i=1950;i<anyoActual;i++) { modeloCombo.addElement(i); } cmbAnyos.setModel(modeloCombo); }
22. El mtodo configurarModelo() con el siguiente cdigo. void configurarModelo(){ modeloTabla.addColumn("Nombre"); modeloTabla.addColumn("Apellidos"); modeloTabla.addColumn("Ao"); modeloTabla.addColumn("Edad"); modeloTabla.addColumn("Sexo"); modeloTabla.addColumn("Areas"); } 23. El mtodo detEdad() permite determinar la edad del empleado. El cdigo es el siguiente: void detEdad(){ int edad = anyoActual - Integer.parseInt(cmbAnyos.getSelectedItem().toString()); lblEdad.setText(String.valueOf(edad)); }
24. Una vez escritos los mtodo anteriores, pulse con el botn derecho del mouse sobre el objeto cmbAnyos y seleccione las opciones Eventos (Events) Item ItemStateChanged. Ah haga un llamado al mtodo detEdad().
25. Seleccione el botn agregar y de doble clic sobre l, esto lo llevar al mtodo del botn, ah escriba el siguiente cdigo. detDatos(); modeloTabla.addRow(filas); lblEmpleados.setModel(modeloTabla);
26. Observe que el procedimiento detDatos() an no ha sido definido. Por tanto, escriba el cdigo para ese procedimiento como sigue: void detDatos(){ String AInteres=""; filas[0] = txtNombre.getText(); filas[1] = txtApellidos.getText(); filas[2] = cmbAnyos.getSelectedItem().toString(); filas[3] = lblEdad.getText(); if (rdMasculino.isSelected()){ filas[4] = "Masculino"; } else{ filas[4] = "Femenino"; } if (chkFutbol.isSelected()) AInteres=chkFutbol.getText() + ", "; if (chkValleyball.isSelected()) AInteres = AInteres + chkValleyball.getText()+ ", "; if (chkOtro.isSelected()) AInteres = AInteres + txtOtro.getText(); filas[5] = AInteres; }
27. En el botn Modificar (btnModificar) escriba el siguiente cdigo: detDatos(); for (int i=0;i<6;i++) modeloTabla.setValueAt (filas[i], fila, i); tabEmpleados.setModel(modeloTabla);
28. En el botn Eliminar (btnEliminar) escriba el siguiente cdigo: modeloTabla.removeRow(fila); tabEmpleados.setModel(modeloTabla);
29. Pulse con el botn derecho del mouse sobre la tabla del panel de abajo y asegurese de seleccionar Events (Events) Mouse MouseClicked, esto lo llevara al cdigo de este evento, ah escriba el siguiente cdigo.
fila = lblEmpleados.rowAtPoint(evt.getPoint()); Con ello se selecciona el nmero de fila donde el usuario dio clic. 30. Finalmente se enlazan los objetos JRadioButton para que, si seleccion masculino, no pueda seleccionarse femenino y viceversa. Para estos efectos pulse sobre el formulario con el botn derecho del mpuse y seleccione Aadir de paleta (Add From Palette) Controles Swing(Swing Controls) Grupo de botones (Button Group), tambin puedes agregarlo arrastrando el objeto desde la paleta que se muestra a la derecha de la pantalla. Se agrega automticamente un grupo de botones que no tendrn visibilidad (es como crear una variable).
Ahora pulse con el botn derecho del mouse sobre el JRadioButton rdMasculino y en las propiedades busque el atributo buttonGroupy selecciones el que aparece ah (probablemente ser buttonGroup1). Con ello se enlaza el radioButton a este grupo de botones. Selecciones tambin la propiedad Selected habilitando la caja de check que presenta. Con ello se mostrar que este radioButton inicialmente est seleccionado. Haga la primera parte de enlazar el siguiente radioButton (rdFemenino) al buttonGroup ambos radioButton estn sincronizados, es decir solo uno de ellos se podr seleccionar a un mismo tiempo.
Ejecute el ejemplo y podr agregar, modificar y eliminar registros desde la tabla. Observe tambin que el formulario frmMantEmpleados queda dentro del entorno del formulario de men (frmMenu). Todos los formularios toman como formulario padre a frmMenu y nuestra aplicacin tendr un aspecto similar siempre.