04 - practica lenguaje programacion - componentes
TRANSCRIPT
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);