You are on page 1of 15

Universidad Nacional Mayor de San Marcos

Facultad de Ingeniera de Sistemas e Informtica


E.A.P. de Ingeniera de Sistemas
Algortmica II

GUIA E DE LABORATORIO
RELACIONES ENTRE CLASES
COMPOSICION AGREGACION ASOCIACION HERENCIA
Objetivo:
Aplicar los conceptos de la Programacin Orientada a Objetos.
Aplicar las definiciones de Relaciones entre clases.
Aprender la composicin, agregacin, asociacin y herencia entre clases, utilizando
el lenguaje de programacin Java.
Descripcin:
A continuacin se presentan varias clases. Cada clase contiene mtodos de tipo SET
y GET, y mtodos operacionales. Los mtodos operacionales son mtodos que
implementan las operaciones FUNCIONALIDADES del objeto.
En
esta
gua
de
Laboratorio
se
va
a
trabajar
con
las
clases
jpanFormularioIngresoDatos,
jpanFormularioMostrarDatos,
jpanFormularioBotonesDeAccion, y jfrmMantenimiento. El objetivo es comprender
como se relacionan estas clases, especialmente como funciona el mecanismo de la
Herencia. El alumno debe encontrar el mecanismo que utilizan las clases para el
envi de datos; as como las referencias entre objetos. Al finalizar esta gua, cada
alumno comprender cuando, donde, como y por que se instancian objetos.
Se debe mencionar que para el desarrollo de esta gua de laboratorio se ha utilizado
la librera grfica SWING de Java, la cual posee muchos componentes grficos tales
como JFrame (marco o contorno), JPanel (panel o lienzo), JLabel (etiqueta),
JTextField (caja de texto), JButton (botn), JTextArea (rea de texto), JScrollPane
(panel de scroll horizontal y vertical), etc. A su vez se ha utilizado la librera grfica
AWT de Java, para el uso de algunos de sus componentes grfico, como por
ejemplo, la clase Color.
Recordar que nos encontramos en un entorno Orientado a Objetos. Eso quiere decir
que cada clase tiene atributos y mtodos PROPIOS de su correspondiente objeto
real. Se pide analizar el cdigo desarrollado, e implementar todas las
funcionalidades.
jpanFormularioIngresoDatos
A continuacin se presenta la clase jpanFormularioIngresoDatos, que define los
atributos y mtodos ms importantes de un formulario real de ingreso de datos. Es
decir, esta clase que hereda de la clase JPanel, me permite construir una interface
grfica donde el USUARIO pueda ingresar un CODIGO y un NOMBRE
correspondiente a un objeto de la vida real, por ejemplo, un Alumno o un Profesor.
Por ejemplo: el Alumno Juan Perez Perez
Cdigo
Nombre

ALU100
JUAN PEREZ PEREZ

Algortmica II

Gua E de Laboratorio Relaciones entre clases

Nota: La clase jpanFormularioIngresoDatos hereda del componente grfico JPanel.


Es por ello que a la hora de instanciar un objeto de la clase
jpanFormularioIngresoDatos, se va a mostrar la siguiente imagen. Recordar que un
componente grfico JPanel es un lienzo donde se va a colocar otros componentes
grficos tales como Etiquetas, Cajas de Texto, Botones, etc.
JLabel
JTextField
JPanel

Pasos a seguir 1:
1. Escribir el siguiente cdigo Java, utilizando un Entorno de Desarrollo
Integrado.
2. Generar el archivo jpanFormularioIngresoDatos.class (Proceso de
Compilacin)

Nota:
Las clases utilizan los mtodos de la clase Base.java, que se encuentra en el
paquete ClasesBase

La clase jpanFormularioIngresoDatos
package Formulario;
//Declaracin de las libreras o paquetes Java
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JOptionPane;
import java.awt.Color;
public class jpanFormularioIngresoDatos extends JPanel{
//Declaracin de Atributos
//Declaramos 2 Etiquetas
protected JLabel jlblCodigo;
protected JLabel jlblNombre;
//Declaramos 2 Cajas de Texto
protected JTextField jtxfCodigo;
protected JTextField jtxfNombre;

Prof. Arn Elas Herrera Ponte

Pg. 2

Algortmica II

Gua E de Laboratorio Relaciones entre clases

//Este es el mtodo constructor por defecto


//invoca o llama al mtodo 'iniciarComponentes()'
public jpanFormularioIngresoDatos(){
iniciarComponentes();
}
//Este mtodo instancia los objetos o componentes grficos
//que se van a mostrar dentro del JPanel (lienzo)
public void iniciarComponentes(){
//Establecemos que el Administrador de Diseo sea NULO
//eso quiere decir que NOSOTROS solos los encargados de
//indicar la ubicacion x,y
//indicar el ancho y alto
//de cada componente grfico SWING
this.setLayout(null);
this.setBackground(Color.ORANGE);
//ETIQUETAS
//Instanciamos cada etiqueta ('label' en English)
//le asignamos el 'String' a mostrar por defecto
//indicamos sus propiedades (x,y,ancho,alto)
jlblCodigo = new JLabel("CDIGO:");
jlblCodigo.setBounds(10,10,100,20);
jlblNombre = new JLabel("NOMBRE:");
jlblNombre.setBounds(10,40,100,20);
//CAJAS DE TEXTO
//Instanciamos cada caja de texto
//indicamos sus propiedades (x,y,ancho,alto)
jtxfCodigo = new JTextField();
jtxfCodigo.setBounds(120,10,100,20);
jtxfNombre = new JTextField();
jtxfNombre.setBounds(120,40,100,20);
//Aadimos cada componente grfico SWING al JPanel
this.add(jlblCodigo);
this.add(jlblNombre);
this.add(jtxfCodigo);
this.add(jtxfNombre);
}
//PARA IMPLEMENTAR...
//Este mtodo valida si los campos de texto del formulario estan VACIOS
//si estan llenos y el tipo de dato es correcto, devuelve 'true'
//si estan llenos y el tipo de dato NO es correcto, devuelve 'false'
//si estan vacos devuelve 'false'
public boolean validarIngresoDeDatosEnElFormulario(){
boolean respuesta = true;
String mensaje = "Ingreso de datos correcto.";
//El numero 2 es el mensaje de tipo 'JOptionPane.INFORMATION_MESSAGE'
int tipoDeMensaje = 1;
if(jtxfCodigo.getText().trim().length() == 0){
mensaje = "Ingrese el CODIGO.";
//El numero 2 es el mensaje de tipo 'JOptionPane.WARNING_MESSAGE'
tipoDeMensaje = 2;
respuesta = false;
}
Prof. Arn Elas Herrera Ponte

Pg. 3

Algortmica II

Gua E de Laboratorio Relaciones entre clases

JOptionPane.showMessageDialog(null,mensaje,"Validacin",tipoDeMensaje);
return respuesta;
}
//Declaracin e Implementacin de mtodos de tipo SET y GET
public void setJlblCodigo(JLabel jlblCodigo) {
this.jlblCodigo = jlblCodigo;
}
public void setJlblNombre(JLabel jlblNombre) {
this.jlblNombre = jlblNombre;
}
public void setJtxfCodigo(JTextField jtxfCodigo) {
this.jtxfCodigo = jtxfCodigo;
}
public void setJtxfNombre(JTextField jtxfNombre) {
this.jtxfNombre = jtxfNombre;
}
public JLabel getJlblCodigo() {
return (this.jlblCodigo);
}
public JLabel getJlblNombre() {
return (this.jlblNombre);
}
public JTextField getJtxfCodigo() {
return (this.jtxfCodigo);
}
public JTextField getJtxfNombre() {
return (this.jtxfNombre);
}
}

PARA IMPLEMENTAR
En
esta
clase
se
debe
implementar
por
COMPLETO
el
mtodo
validarIngresoDeDatosEnElFormulario. Este mtodo valida si los campos de texto del
formulario estn VACIOS. S estn llenos y el tipo de dato es correcto, devuelve 'true'. Si estn
llenos y el tipo de dato NO es correcto, devuelve 'false'. Si estn vacos devuelve 'false'.

Clase jpanFormularioMostrarDatos
A continuacin se presenta la clase jpanFormularioMostrarDatos, que define los
atributos y mtodos ms importantes de un formulario real que tiene cmo nica
finalidad mostrar datos.
Por ejemplo: Mostramos los datos del Alumno JUAN PEREZ

CODIGO: ALU100
NOMBRE: JUAN PEREZ
Prof. Arn Elas Herrera Ponte

Pg. 4

Algortmica II

Gua E de Laboratorio Relaciones entre clases

Nota: La clase jpanFormularioMostrarDatos hereda del componente grfico JPanel.


Es por ello que a la hora de instanciar un objeto de la clase
jpanFormularioMostrarDatos, se va a mostrar la siguiente imagen. Recordar que un
componente grfico JPanel es un lienzo donde se va a colocar otros componentes
grficos tales como Etiquetas, Cajas de Texto, Botones, reas de Texto, etc.
JLabel
JTextArea

JPanel

Pasos a seguir 2:
3. Escribir el siguiente cdigo Java, utilizando un Entorno de Desarrollo
Integrado.
4. Generar el archivo jpanFormularioMostrarDatos.class (Proceso de
Compilacin)

La clase jpanFormularioMostrarDatos
package Formulario;
//Declaracin de las libreras o paquetes Java
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.Color;
public class jpanFormularioMostrarDatos extends JPanel{
protected JLabel jlblTitulo;
protected JTextArea jtxaMostrar;
protected JScrollPane jscrpanMostrar;
//Este es el mtodo constructor por defecto
//invoca o llama al mtodo 'iniciarComponentes()'
public jpanFormularioMostrarDatos(){
iniciarComponentes();
Prof. Arn Elas Herrera Ponte

Pg. 5

Algortmica II

Gua E de Laboratorio Relaciones entre clases

}
//Este mtodo instancia los objetos o componentes grficos
//que se van a mostrar dentro del JPanel (lienzo)
public void iniciarComponentes(){
//Establecemos que el Administrador de Diseo sea NULO
//eso quiere decir que NOSOTROS solos los encargados de
//indicar la ubicacion x,y
//indicar el ancho y alto
//de cada componente grfico SWING
this.setLayout(null);
this.setBackground(Color.MAGENTA);
jlblTitulo = new JLabel("Mostrando datos:");
jlblTitulo.setBounds(10,10,100,20);
jtxaMostrar = new JTextArea();
jtxaMostrar.setBackground(Color.YELLOW);
jscrpanMostrar = new JScrollPane();
//Agregamos el JTextArea dentro del JScrollPane
jscrpanMostrar.setViewportView(jtxaMostrar);
jscrpanMostrar.setBounds(10,40,400,70);
//Aadimos cada componente grfico SWING al JPanel
this.add(jlblTitulo);
this.add(jscrpanMostrar);
}
//Este mtodo muestra el contenido del String 'datos'
//dentro del componente grfico 'jtxaMostrar'
public void mostrarDatos(String datos){
jtxaMostrar.setText(datos);
}
//Declaracin e Implementacin de mtodos de tipo SET y GET
public void setJlblTitulo(JLabel jlblTitulo) {
this.jlblTitulo = jlblTitulo;
}
public void setJtxaMostrar(JTextArea jtxaMostrar) {
this.jtxaMostrar = jtxaMostrar;
}
public JLabel getJlblTitulo() {
return (this.jlblTitulo);
}
public JTextArea getJtxaMostrar() {
return (this.jtxaMostrar);
}
}
Clase jpanFormularioBotonesDeAccion
A continuacin se presenta la clase jpanFormularioBotonesDeAccion, que define los
atributos y mtodos ms importantes de un conjunto de objetos reales llamados
Prof. Arn Elas Herrera Ponte

Pg. 6

Algortmica II

Gua E de Laboratorio Relaciones entre clases

BOTONES DE ACCION, cuya finalidad es generar EVENTOS cuando se interacta con


los botones.

JButton

JPanel

Pasos a seguir 3:
5. Escribir el siguiente cdigo Java, utilizando un Entorno de Desarrollo
Integrado.
6. Generar el archivo jpanFormularioBotonesDeAccion.class (Proceso de
Compilacin)

La clase jpanFormularioBotonesDeAccion
package Formulario;
//Declaracin de las libreras o paquetes Java
import javax.swing.JPanel;
import javax.swing.JButton;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class jpanFormularioBotonesDeAccion extends JPanel implements ActionListener{
//Declaracin de Atributos
//Declaramos 4 Botones
protected JButton jbtnAceptar;
protected JButton jbtnMostrar;
protected JButton jbtnLimpiar;
protected JButton jbtnSalir;
//Declaramos 2 objetos que van a tener la REFERENCIA
//a los objetos de tipo JPanel 'ingreso de datos'
//y al JPanel 'mostrar datos' respectivamente
protected jpanFormularioIngresoDatos ingresoRelacionado;
protected jpanFormularioMostrarDatos salidaRelacionado;
//Este es el mtodo constructor por defecto
//invoca o llama al mtodo 'iniciarComponentes()'
public jpanFormularioBotonesDeAccion(){
iniciarComponentes();
}
//Este mtodo instancia los objetos o componentes grficos
//que se van a mostrar dentro del JPanel (lienzo)
public void iniciarComponentes(){
//Establecemos que el Administrador de Diseo sea NULO
//eso quiere decir que NOSOTROS solos los encargados de
Prof. Arn Elas Herrera Ponte

Pg. 7

Algortmica II

Gua E de Laboratorio Relaciones entre clases

//indicar la ubicacion x,y


//indicar el ancho y alto
//de cada componente grfico SWING
this.setLayout(null);
//Establecemos como color de fondo 'CELESTE'
this.setBackground(Color.CYAN);
//BOTONES
//Instanciamos cada botn
//le asignamos el 'String' a mostrar por defecto
//le ponemos un color de fondo
//indicamos sus propiedades (x,y,ancho,alto)
//le ponemos un mensaje al botn, este mensaje aparece cuando colocamos
//el mouse sobre el botn
//IMPORTANTE:
//le aadimos la propiedad de listener con 'addActionListener(this)'
//que significa que va a detectar cuando se hace un clic del mouse sobre el botn
//SINO tiene esta propiedad, el botn NO reconoce algn evento de tipo 'action'
jbtnAceptar = new JButton("ACEPTAR");
jbtnAceptar.setBackground(Color.YELLOW);
jbtnAceptar.setBounds(10,10,100,20);
jbtnAceptar.setToolTipText("Hacer click para ACEPTAR.");
jbtnAceptar.addActionListener(this);
jbtnMostrar = new JButton("MOSTRAR");
jbtnMostrar.setBackground(Color.GREEN);
jbtnMostrar.setBounds(120,10,100,20);
jbtnMostrar.setToolTipText("Hacer click para MOSTRAR.");
jbtnLimpiar = new JButton("LIMPIAR");
jbtnLimpiar.setBackground(Color.PINK);
jbtnLimpiar.setBounds(230,10,100,20);
jbtnLimpiar.setToolTipText("Hacer click para LIMPIAR.");
jbtnSalir = new JButton("SALIR");
jbtnSalir.setBackground(Color.ORANGE);
jbtnSalir.setBounds(340,10,100,20);
jbtnSalir.setToolTipText("Hacer click para SALIR.");
jbtnSalir.addActionListener(this);
//Aadimos cada componente grfico SWING al JPanel
this.add(jbtnAceptar);
this.add(jbtnMostrar);
this.add(jbtnLimpiar);
this.add(jbtnSalir);
}
//PARA IMPLEMENTAR...
//Este mtodo se ejecuta cuando algun botn genera su evento 'action'
//es decir algun botn ha escuchado un evento
//por ejemplo cuando se hace clic sobre algn boton se genera el evento 'action'
public void actionPerformed(ActionEvent e){
//Preguntamos si se hice clic en el botn 'ACEPTAR'
if(e.getSource()==jbtnAceptar){
//Validamos si el formulario esta lleno y con datos correctos
if(ingresoRelacionado.validarIngresoDeDatosEnElFormulario()){
//Mostramos la informacin del JPanel 'ingreso'
salidaRelacionado.mostrarDatos(formarSalidaAMostrar());
}
Prof. Arn Elas Herrera Ponte

Pg. 8

Algortmica II

Gua E de Laboratorio Relaciones entre clases

}
//Preguntamos si se hice clic en el botn 'SALIR'
if(e.getSource()==jbtnSalir){
//Salimos de la Aplicacin, se cierran TODAS los formularios abiertos.
System.exit(0);
}
}
//Este mtodo prepara el formato a mostrar en el JPanel 'salida'
public String formarSalidaAMostrar(){
String datos = "CODIGO: " + ingresoRelacionado.jtxfCodigo.getText().trim() + "\n" +
"NOMBRE: " + ingresoRelacionado.jtxfNombre.getText().trim();
return datos;
}
//Este mtodo ASOCIA a un objeto de tipo PadelDeBotones con un objeto de tipo
//PanelDeIngreso. Es importante establecer esta ASOCIACIN. Significa que el PanelDeBotones
//puede hacer uso del valor de cada componente grfico del PanelDeIngreso y de esa manera
//saber SI ES QUE se han ingresado datos en dicho JPanel.
public void asociarPanelDeBotonesConElPanelDeIngreso(jpanFormularioIngresoDatos ingreso){
ingresoRelacionado = ingreso;
}
//Este mtodo ASOCIA a un objeto de tipo PadelDeBotones con un objeto de tipo
//PanelParaMostrar. Es importante establecer esta ASOCIACIN. Significa que el PanelDeBotones
//puede hacer uso del componente grfico del PanelDeSalida y de esa manera
//mostrar alguna informacin en dicho JPanel.
public void asociarPanelDeBotonesConElPanelDeSalida(jpanFormularioMostrarDatos salida){
salidaRelacionado = salida;
}
}
PARA IMPLEMENTAR
Se debe completar la implementacin del mtodo actionPerformed()
Este mtodo se ejecuta cuando algn botn genera su evento 'action', es decir algn botn ha
escuchado un evento.
En este mtodo slo se ha programado para detectar si se hizo clic en los botones
jbtnAceptar y jbtnSalir.
Se debe programar para que detecte si se hizo clic en los botones jbtnMostrar y jbtnLimpiar.
Para el caso del botn jbtnMostrar, se debe mostrar todos los datos ingresados por formulario
de ingreso de datos.
Para el caso del botn jbtnLimpiar, se debe limpiar el contenido del formulario de ingreso de
datos.
NOTA: Recordar que para que un botn escuche si se hizo clic sobre l, se debe haber
establecido la propiedad addActionListener(this) en dicho botn.
NOTA: Se recomienda que siempre se invoque a mtodos que realizan algn proceso en
especfico. De esa manera contribuimos al REFACTORING de la clase.
Clase jpanFondo
Esta clase jpanFondo hereda del componente grfico JPanel. Declaramos esta clase
para crear objetos de tipo JPanel. Un objeto de tipo JPanel es un lienzo sobre el

Prof. Arn Elas Herrera Ponte

Pg. 9

Algortmica II

Gua E de Laboratorio Relaciones entre clases

cual se van a colocar otros componentes grficos tales como Etiquetas, Cajas de
Texto, Botones, rea de Texto, Combos, Botones circulares, Cajas de chequeo, etc.
Esta clase jpanFondo servir para instanciar
Grficamente el objeto fondo se ver as:

un

objeto

llamado

fondo.

JPanel

El objeto fondo es un lienzo, que por programacin se le ha dado el color de


Amarillo Claro.
Este objeto fondo se va a aadir dentro del formulario llamado
jfrmMantenimiento que hereda de la clase JFrame. Por ello, luego de aadirlo el
JPanel fondo dentro del Jframe jfrmMantenimiento se ver as:
JFrame

Prof. Arn Elas Herrera Ponte

Pg. 10

Algortmica II

Gua E de Laboratorio Relaciones entre clases

JPanel

Pasos a seguir 4:
7. Escribir el siguiente cdigo Java, utilizando un Entorno de Desarrollo
Integrado.
8. Generar el archivo jpanFondo.class (Proceso de Compilacin)

La clase jpanFondo
package Formulario;
//Declaracion de libreras o paquetes
import javax.swing.JPanel;
import java.awt.Color;
//Definimos la clase 'jpanFondo'
//que HEREDA de la clase 'JPanel'
public class jpanFondo extends JPanel{
//Declaracin de Atributos
//Declaramos un objeto de tipo 'Color'
protected Color coColorDeFondo;
//Este es el Mtodo Constructor por defecto
public jpanFondo(){
this.setLayout(null);
//Instanciamos el objeto 'coColorDeFondo'
//se usan 3 nmeros enteros del rango [0-255]
//para crear un color en el sistema RGB
Prof. Arn Elas Herrera Ponte

Pg. 11

Algortmica II

Gua E de Laboratorio Relaciones entre clases

//codigo de colores del color 'lightyellow'


coColorDeFondo = new Color(255,255,224);
//Asignamos el objeto 'coColorDeFondo' como
//el color de fondo del jpanFondo
this.setBackground(coColorDeFondo);
}
}

Clase jfrmMantenimiento
A continuacin se presenta la clase jfrmMantenimiento, que define los atributos y
mtodos ms importantes de un formulario real de Mantenimiento de Datos, es
decir este formulario permite el ingreso de datos, generacin de eventos mediante
botones de accin y salida de datos (impresin de datos por un rea de texto).

Es importante indicar que la clase jfrmMantenimiento hereda del componente


grfico JFrame que pertenece a la librera grfica SWING. Esta clase funciona como
un marco o contorno, en la cual se van a presentar componentes grficos.
Adems es IMPORTANTE entender que dentro de un JFrame debe ir un JPanel.
JFrame

JPanel

Es por ello que dentro de la clase jfrmMantenimiento hemos aadido con el mtodo
add un objeto llamado fondo que hereda del componente grfico JPanel. A este
objeto fondo le hemos puesto de color Amarillo Claro, como puede notar en la
siguiente imagen.
JFrame

Prof. Arn Elas Herrera Ponte

Pg. 12

Algortmica II

Gua E de Laboratorio Relaciones entre clases

JPanel

Luego, dentro del objeto fondo, se ha aadido 3 objetos llamados ingreso,


botones, y salida que heredan de la clase JPanel. Dando como resultado la
siguiente interface grafica de usuario.
jfrmMantenimiento
Hereda de JFrame

jpanFormularioIngresoDatos
Hereda de JPanel

jpanFormularioBotonesDeAccion
Hereda de JPanel
jpanFormularioMostrarDatos
Hereda de JPanel

jpanFondo
Hereda de JPanel
Prof. Arn Elas Herrera Ponte

Pg. 13

Algortmica II

Gua E de Laboratorio Relaciones entre clases

Pasos a seguir 5:
9. Escribir el siguiente cdigo Java, utilizando un Entorno de Desarrollo
Integrado.
10. Generar el archivo jfrmMantenimiento.class (Proceso de Compilacin)

La clase jfrmMantenimiento
package Formulario;
//Declaracin de las libreras o paquetes Java
import javax.swing.JFrame;
public class jfrmMantenimiento extends JFrame{
//Declaracin de Atributos
//Declaramos 4 objteos de tipo JPanel (lienzos)
protected jpanFondo fondo;
protected jpanFormularioIngresoDatos ingreso;
protected jpanFormularioBotonesDeAccion botones;
protected jpanFormularioMostrarDatos salida;
//Este es el mtodo constructor por defecto
//invoca o llama al mtodo 'iniciarComponentes()'
public jfrmMantenimiento(){
iniciarComponentes();
}
//Este mtodo instancia los objetos o componentes grficos
//que se van a mostrar dentro del JFrame (marco o contorno)
public void iniciarComponentes(){
this.setSize(500,400);
this.setTitle("Formulario");
this.setLocation(50,50);
fondo = new jpanFondo();
ingreso = new jpanFormularioIngresoDatos();
ingreso.setBounds(10,10,460,100);
botones = new jpanFormularioBotonesDeAccion();
botones.setBounds(10,120,460,100);
salida = new jpanFormularioMostrarDatos();
salida.setBounds(10,230,460,120);
fondo.add(ingreso);
fondo.add(botones);
fondo.add(salida);
this.add(fondo);
//ASOCIAMOS los objetos de tipo JPanel
//utilizamos REFERENCIA para asociar al panel 'botones' con 'ingreso'
botones.asociarPanelDeBotonesConElPanelDeIngreso(ingreso);
//utilizamos REFERENCIA para asociar al panel 'botones' con 'salida'
Prof. Arn Elas Herrera Ponte

Pg. 14

Algortmica II

Gua E de Laboratorio Relaciones entre clases

botones.asociarPanelDeBotonesConElPanelDeSalida(salida);
//Indicamos que al cerrar la ventana, se detengan todos los procesos
//iniciados para esta ventana
this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
}
public static void main (String[] args) {
new jfrmMantenimiento().setVisible(true);
}
}

TAREA
1. Se pide implementar el algoritmo que permita centrar el formulario llamado
jfrmMantenimiento.
Se recomienda utilizar la informacin brindada en la pgina web
(http://www.chuidiang.com/chuwiki/index.php?title=JFrame_y_JDialog) en su apartado
Centrar una ventana en pantalla.
2. Se pide completar de implementar los todos los mtodos que tienen como frase PARA
IMPLEMENTAR.
3. Aplicando Herencia: Herede de la clase jpanFormularioIngresoDatos para crear la
clase jpanFormularioIngresoDatosAlumno. Luego agrguele un componente grafico
'JComboBox' que muestre los cursos que pude llevar y pida seleccionar uno. Luego
agrguele dos componentes grficos 'JRadioButton' que muestre el sexo del Alumno ( )
Masculino ( ) Femenino. Luego agrguele un componente grafico 'JCheckBox' que
permita hacer un check si el Alumno es BECADO [].
Se recomienda utilizar la informacin brindada en las pginas webs:
http://www.chuidiang.com/chuwiki/index.php?title=Ejemplo_sencillo_de_JComboBox
http://www.gfc.edu.co/estudiantes/anuario/2002/sistemas/camilo/3bimestre/Tuto/x51.ht
ml
http://www.programacionfacil.com/java:jradiobutton
http://www.gfc.edu.co/estudiantes/anuario/2002/sistemas/camilo/3bimestre/Tuto/x32.ht
ml
http://www.javabeginner.com/jcheckbox.htm
4. Aplicando Agregacin: Se pide crear la clase Alumno con los Atributos (CODIGO
String, NOMRBE String, CURSO String, SEXO char y BECADO boolean). Luego
RELACIONAR la clase Alumno y la clase jfrmMantenimiento, de tal manera que
utilizando la interface grfica de usuario se pueda ingresar los datos de cada alumno,
para ello se utilizar el botn Aceptar y se guarde los datos de cada alumno en un
arreglo de alumnos. Cada vez que se ingresan los datos de un nuevo Alumno, el
formulario de ingreso se debe limpiar, para ello se utilizar el botn Limpiar y si ya
existe el cdigo del Alumno se debe mostrar un mensaje que indique que YA EXISTE
DICHO CODIGO. Adems, luego de ingresar los datos de uno o varios alumnos se
debe mostrar todos los datos ingresados en el rea de texto, para ello se utilizar el
botn Mostrar. Finalmente se debe hacer clic en el botn Salir, el cual mostrar un
mensaje indicando: DESEA SALIR DEL SISTEMA? Para ello se recomienda utilizar la
clase JOptionPane con su mtodo JOptionPane.showConfirmDialog().Se recomienda
utilizar
la
informacin
brindada
en
la
pgina
web
(http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JOptionPane.html) en
su apartado Example Confirm Dialogs.

Prof. Arn Elas Herrera Ponte

Pg. 15