04 - Practica Lenguaje Programacion - Componentes

3
PRÁCTICA DE LENGUAJE DE PROGRAMACIÓN Tema: Interfaces gráficas – Componentes Esta práctica tiene por finalidad demostrar el uso y manejo de diferentes componentes básicos de la biblioteca gráfica Swing de Java. Para ello diseñaremos un formulario de ingreso de datos de alumnos. La apariencia final que obtendremos (y que se explica más adelante) será similar a: Figura: Apariencia final del JFrame para ingreso de datos de alumnos de EBR 1. Empezaremos creando un nuevo proyecto denominado sistema: a) Luego agrega una Application Window: Menú Archivo > Nuevo > Otras > WindowBuilder > Swing Designer > Aplication Window denominándola frmDatosAlumno. b) En vista diseño activa el Absolut Layout para poder colocar libremente los componenetes. c) Inserta los siguientes componentes basaándose en la imagen mostrada arriba al inicio. OBJETO Propiedades Observaciones Variable text model JTextField txtNombres JTextField txtApellidos JDateChooser dcFena Importar este componente JPanel contenedor de los botones Femenino y masculino JRadioButton rbMasculino Masculino Insertar dentro del JPane JRadioButton rbFemenino Femenino Insertar dentro del JPane Prof. Simón Quispeluza M. IESPP-”José Jiménez Borja”

Transcript of 04 - Practica Lenguaje Programacion - Componentes

PRÁCTICA DE LENGUAJE DE PROGRAMACIÓN

Tema: Interfaces gráficas – Componentes

Esta práctica tiene por finalidad demostrar el uso y manejo de diferentes componentes básicos de la biblioteca gráfica Swing de Java. Para ello diseñaremos un formulario de ingreso de datos de alumnos. La apariencia final que obtendremos (y que se explica más adelante) será similar a:

Figura: Apariencia final del JFrame para ingreso de datos de alumnos de EBR

1. Empezaremos creando un nuevo proyecto denominado sistema:a) Luego agrega una Application Window: Menú Archivo > Nuevo > Otras > WindowBuilder >

Swing Designer > Aplication Window denominándola frmDatosAlumno.b) En vista diseño activa el Absolut Layout para poder colocar libremente los componenetes.c) Inserta los siguientes componentes basaándose en la imagen mostrada arriba al inicio.

OBJETOPropiedades Observaciones

Variable text model

JTextField txtNombres

JTextField txtApellidos

JDateChooser dcFena Importar este componente

JPanel contenedor de los botones Femenino y masculino

JRadioButton rbMasculino Masculino Insertar dentro del JPane

JRadioButton rbFemenino Femenino Insertar dentro del JPane

Prof. Simón Quispeluza M. IESPP-”José Jiménez Borja”

JComboBox cboNivel InicialPrimariaSecundaria

JComboBox cboGrado 3 años4 años5 años

JComboBox cboSeccion

JScrollPane scroll Contenedor del JList

JList lstApoderados Poner dentro del scroll

JCheckBox chkBecado

JButton btnNuevo Nuevo

JButton btnGuardar Guardar

JButton btnSalir Salir

d) Además de los objetos señalados en esta tabla insertar objetos JLabel necesarios para poner los rótulos así como líneas separadoras. Utilice también la barra de herramientas para alinear de tal forma que se obtenga un aspecto similar al mostrado al inicio.

Nota:• Para ir probando cómo queda la interfaz gráfica, en la vista diseño active el menú contextual y

escoja la opción Test/Preview...

2. Para hacer excluyentes la selección de los botones de radio Femenino y Masculino proceda así:

✔ En la ficha Structure seleccione los dos botones de radio rbMasculino y rbFemenino

✔ Active el menu contextual y seleccione Set ButtonGroup > New Standard. A este grupo dele el nombre de bgSexo.

Verifique que ahora dichos botones de radio forman un grupo y por lo tanto son excluyentes, es decir si selecciona uno el otro se deselecciona.

3. Realice las modificaciones necesarias al código de tal forma que los objetos (que permiten el ingreso de datos por parte el usuario) se declaren como miembros de la clase y se crean en el método initialize. Recuerde que esto es para darle a los objetos un ámbito de vida dentro de toda la clase y no sólo al ámbito de initialize. Debería quedar similar a:

Prof. Simón Quispeluza M. IESPP-”José Jiménez Borja”

public class frmDatosAlumno {private JFrame frmDatos;private JTextField txtNombres;private JTextField txtApellidos;private JDateChooser dcFena;private JRadioButton rbMasculino;private JRadioButton rbFemenino;private JComboBox cboNivel;private JComboBox cboGrado;private JComboBox cboSeccion;private JList lstApoderados;private JCheckBox chkBecado;private final ButtonGroup bgSexo = new ButtonGroup();

Verifique que en el método initialize no se declaran sino se crean éstos objetos declarados como miembros de la clase. Ej: ...txtNombres = new JTextField(); // crear objeto (declarado previamente)...

4. Programar el actionPerformed del cboNivel con el código:

5. De manera similar el actionPerformed para el btnNuevo codificar:

6. También al final del método initialize agregar:

7. No olvidar programar el btnSalir. Luego prueba el programa, corrija errores posibles e ingrese datos para probar la funcionalidad del programa.

8. Queda pendiente la implementación de btnGuardar.

Actividades:Resuma los métodos usados para cada componente, así como una explicación del uso que se le ha dado en este programa.

Prof. Simón Quispeluza M. IESPP-”José Jiménez Borja”

switch (cboNivel.getSelectedIndex() ) {case -1: // no hay items en el JcomboBox

break;case 0: // Inicial

cboGrado.setModel(new DefaultComboBoxModel(new String[] {"3 años", "4 años", "5 años"}));

break;case 1: // Primariacase 2: // Secundaria

cboGrado.setModel(new DefaultComboBoxModel(new String[] {"Primero", "Segundo", "Tercero", "Cuarto", "Quinto"}));

break;}if (cboNivel.getSelectedIndex() == 1) // si es primaria agregar

cboGrado.addItem("Sexto");

// Limpiar campostxtNombres.setText("");txtApellidos.setText("");dcFena.setDate(null);cboNivel.setSelectedIndex(-1);cboGrado.setSelectedIndex(-1);cboSeccion.setSelectedIndex(-1);lstApoderados.setSelectedIndex(-1);lstApoderados.clearSelection();bgSexo.clearSelection();chkBecado.setSelected(false);

// Rellenar Lista de apoderadosDefaultListModel modelo = new DefaultListModel();lstApoderados.setModel(modelo);for (int i=0; i < 20; i++)

modelo.addElement("Apoderado " + i);

// Rellenar cbSeccion con letras de A-Z for (char c='A'; c <= 'Z'; c++)

cboSeccion.addItem(c);