Professional Documents
Culture Documents
TALLER DE PROGRAMACIÓN I
CONSTRUCTORES
• Cuando se construye un objeto es necesario inicializar sus
variables con valores coherentes, imaginemos un objeto
de la clase Persona cuyo atributo color de pelo al nacer
sea verde, un estado incorrecto tras construir el objeto
persona. La solución en los lenguajes orientados a objetos
es emplear los constructores. Un constructor es un
método perteneciente a la clase que posee unas
características especiales:
12-11-2009 14:27:36
CONSTRUCTORES
• Se llama igual que la clase.
• No devuelve nada, ni siquiera void.
• Pueden existir varios, pero siguiendo las reglas de la
sobrecarga de funciones.
• De entre los que existan, tan sólo uno se ejecutará al crear
un objeto de la clase.
• Dentro del código de un constructor generalmente suele
existir inicializaciones de variables y objetos, para
conseguir que el objeto sea creado con dichos valores
iniciales.
12-11-2009 14:27:36
CONSTRUCTORES
public class Persona{
private String nombre;
private String direccion;
private int anioNacimiento;
public Persona(){
anioNacimiento=2009;
}
12-11-2009 14:27:36
HERENCIA, POLIMORFISMO E INTERFAZ
Public Persona(){
anioNacimiento =2009;
}
public Alumno(){
semestre = 1;
}
12-11-2009 14:27:36
PROGRAMACIÓN GRÁFICA EN EL ENTORNO
SWING (introducción)
• Java 1.0® Abstract Window Toolkit (AWT)
– Implementado en código nativo y por lo tanto dependiente
de la plataforma
– Limita los elementos GUI a los existentes en la plataforma
– Tiene inconsistencias en la implementación
• Java 1.2 (Java 2) ® Java Foundation Class (JFC) que incluyen la nueva librería
para GUI Swing
– Conjunto completo y consistente de elementos GUI
(componentes) independiente de la plataforma
– La implementación es también independiente de la plataforma
– Swing extiende AWT que sigue estando presente
12-11-2009 14:27:36
PROGRAMACIÓN GRÁFICA EN EL ENTORNO
SWING (introducción)
AWT
Elementos básicos:
Componentes:
Permiten al usuario interactuar con la aplicación y
proporcionarle información sobre el estado de ésta.
Menús, botones, barras de desplazamiento, etiquetas
texto, listas de selección, ...
Contenedores:
Componentes que contienen otros Componentes.
Ventanas, frames, diálogos, paneles
12-11-2009 14:27:36
NETBEANS IDE
• El IDE NetBeans es una herramienta para programadores pensada para
escribir, compilar, depurar y ejecutar programas. Está escrito en Java, pero
puede servir para cualquier otro lenguaje de programación. Existe además
un número importante de módulos para extender el IDE NetBeans. El IDE
NetBeans es un producto libre y gratuito sin restricciones de uso.
• Es de código abierto escrito completamente en Java usando la plataforma
NetBeans. El NetBeans IDE soporta el desarrollo de todos los tipos de
aplicación Java (J2SE, web, EJB y aplicaciones móviles). Entre sus
características se encuentra un sistema de proyectos basado en Ant,
control de versiones y refactoring.
12-11-2009 14:27:39
NETBEANS IDE
12-11-2009 14:27:39
CREANDO UNA APLICACIÓN SWING
Configurar el Contenedor de Alto Nivel
Todo programa que presente un GUI Swing contiene al menos un contenedor
Swing de alto nivel.
Para la mayoría de los programas, los contenedores de alto nivel Swing son
ejemplares de Jframe. Cada objeto JFrame implementa una ventana.
Métodos Importantes:
pack(): Dimensiona la ventana para que sus
componentes tengan sus tamaños preferidos.
setLocationRelativeTo(): Asigna la ubicación del
frame relativa al componente indicado.
12-11-2009 14:27:39
CREANDO UNA APLICACIÓN SWING
Añadir Componentes a los Contenedores
Las interfaces gráficas de usuario se construyen con componentes, cada uno
de los cuales está preparado para responder a distintos tipos de eventos.
Algunos de los componentes incluidos en Swing son:
12-11-2009 14:27:39
CREANDO UNA APLICACIÓN SWING
Manejando eventos
Cada vez que el usuario pulsa una tecla, un botón, mueve el mouse, etc. Se
produce un evento. Es posible notificar los eventos para que el programa
actúe en consecuencia.
Para ello, se crean unos objetos llamados “listeners” que capturan el evento
realizado.
ACCIÓN QUE GATILLA EL EVENTO LISTENER
El usuario hace un clic, presiona Enter en un ActionListener
área de texto o selecciona un menú
El usuario escoge un frame (ventana principal) WindowListener
El usuario hace un clic sobre un componente MouseListener
12-11-2009 14:27:40
COMPONENTES DE SWING
JLABEL
Con la clase JLabel, se puede mostrar texto no seleccionable e imágenes. Si
necesitamos crear un componente que muestre un sencillo texto o una imagen,
podemos hacerlo utilizando un ejemplar de JLabel.
Prefijo : lbl
Atributos Importantes:
text: Permite modificar el texto de la etiqueta
Métodos Importantes:
setText(String) : Cambia el texto de la etiqueta
getText(String): Obtiene el texto de la etiqueta
setVisible(boolean) : Cambia el estado
visible/invisible
12-11-2009 14:27:40
COMPONENTES DE SWING
JBUTTON
Otro componente muy utilizado, y de simple realización es el botón. Es un poco
más complicado que el jLabel porque puede recibir unos sucesos (Click el botón).
Los botones son de tres tipos: los normales, les Checkbox y los radiobutton.
Empezamos con los primeros.
Prefijo : btn
Atributos Importantes:
text: Permite modificar el texto de la etiqueta
Métodos Importantes:
setText(String) : Cambia el texto del botón
getText(String): Obtiene el texto del botón
setVisible(boolean) : Cambia el estado
visible/invisible
setEnabled(boolean): Cambia el estado
habilitado/deshabilitado
doClick() : Ejecuta el ActionListener asociado al
12-11-2009 14:27:40
botón.
CREANDO UNA APLICACIÓN SWING
EJEMPLO N° 1 : HOLA MUNDO
Componentes:
3 jLabel
1 jButton
Elaboración:
Una vez agregados los
componentes al jFrame,
manipule el atributo font de
los jLabel para cambiar su
apariencia y el atributo text
para cambiar su contenido. El
atributo icon del jLabel permite
incluir imágenes en el objeto.
Programe en el ActionListener
del botón lo necesario para que
la aplicación se termine.
12-11-2009 14:27:40
CREANDO UNA APLICACIÓN SWING
EJEMPLO N° 2 : CLICS DEL BOTÓN
Componentes:
1 jLabel
2 jButton
Elaboración:
Una vez agregados los
componentes al jFrame, manipule
el atributo text de los botones y la
etiqueta para que tengan la
apariencia del ejemplo. Programe
los ActionListener de los botones
para que al hacer clic en el botón
“Click Me!” se incremente el valor
escrito en la etiqueta. En el botón
Salir, programe lo necesario para
que la aplicación se termine.
12-11-2009 14:27:41
COMPONENTES DE SWING
JTEXTFIELD y JPASSWORDFIELD
Un campo de texto es un control básico que permite al usuario teclear una pequeña
cantidad de texto y dispara un evento action cuando el usuario indique que la entrada
de texto se ha completado (normalmente pulsando Return(Enter)). Si necesitamos
proporcionar un password field -- un campo de texto editable que no muestra los
caracteres tecleados por el usuario -- utilizaremos la clase JPasswordField. Esta sección
explica estos dos campos de texto.
Prefijo : txt
Atributos Importantes:
text: Permite modificar el texto del campo de texto
Métodos Importantes:
setText(String) : Cambia el texto del campo de texto
getText(String): Obtiene el texto escrito en el campo
setVisible(boolean) : Cambia el estado visible/invisible
setEnabled(boolean): Cambia el estado
habilitado/deshabilitado
12-11-2009 14:27:42
CREANDO UNA APLICACIÓN SWING
EJEMPLO N° 3 : HOLA TU!
Componentes:
2 jLabel
2 jButton
1 jTextField
Elaboración:
Una vez agregados los
componentes al jFrame, manipule
el atributo text de los botones y la
etiqueta para que tengan la
apariencia del ejemplo. Programe
los ActionListener de los botones
para que al hacer clic en el botón
“OK” aparezca el mensaje en la
etiqueta. En el botón Salir,
programe lo necesario para que la
aplicación se termine.
12-11-2009 14:27:42
CREANDO UNA APLICACIÓN SWING
EJEMPLO N° 4 : INICIAR SESIÓN
Componentes:
4 jLabel
1 jButton
1 jTextField
1 jPasswordField
Elaboración:
Una vez agregados los
componentes al jFrame, manipule
el atributo text de los botones y las
etiquetas para que tengan la
apariencia del ejemplo. Programe
el ActionListener del botón para
que al hacer clic en el botón
“Entrar” aparezca el mensaje en la
etiqueta si los datos de Log in no
son correctos, de lo contrario,
escriba en la etiqueta Inicio de
Sesión exitoso.
12-11-2009 14:27:42
CREANDO UNA APLICACIÓN SWING
EJEMPLO N° 4 : CONVERSOR DE DIVISAS
Componentes:
2 jLabel
2 jButton
1 jTextField
Elaboración:
Una vez agregados los
componentes al jFrame, manipule
el atributo text de los botones y las
etiquetas para que tengan la
apariencia del ejemplo. Programe
los ActionListener de los botones
para que al hacer clic en el botón
“Convertir” aparezca en la etiqueta
el correspondiente de los dólares
ingresados en pesos. Programe el
botón “Salir” para que termine la
aplicación.
12-11-2009 14:27:43
COMPONENTES DE SWING
JTEXTAREA
Un TextArea es un componente básico del Swing de Java y su función principal es la de
capturar texto ingresado por el teclado. Su funcionamiento es idéntico a JTextField, con
la diferencia de tiene la propiedad de ser multilinea.
Prefijo : txa
Atributos Importantes:
text: Permite modificar el texto del área de texto
Métodos Importantes:
setText(String) : Cambia el texto del área de texto
getText(String): Obtiene el texto escrito en el textarea
setVisible(boolean) : Cambia el estado visible/invisible
setEnabled(boolean): Cambia el estado
habilitado/deshabilitado
12-11-2009 14:27:43
CREANDO UNA APLICACIÓN SWING
EJEMPLO N° 4 : CHAT ROOM Componentes:
1 jButton
1 jTextField
1 jTextArea
Elaboración:
Una vez agregados los
componentes al jFrame, manipule
el atributo text de los botones y los
campos de texto para que tengan
la apariencia del ejemplo.
Programe el ActionListener del
botón para que al hacer clic en él
se traspase lo escrito en el textField
hacia el textArea.
12-11-2009 14:27:43
COMPONENTES DE SWING
JOPTIONPANE (OP)
En las aplicaciones de escritorio, es bastante habitual que tengamos que pedir al
usuario la confirmación de una acción (por ejemplo, salir de la aplicación o borrar unos
datos), pedirle algún dato sencillo, darle a elegir entre varias acciones o simplemente
mostrarle un aviso. A veces es necesario para estas acciones abrir una ventana
secundaria donde el usuario debe realizar la acción que sea y cerrarla.
Por ejemplo, podemos mostrarle una ventana preguntando algo como "¿Estás seguro
que quieres borrar todos esos datos?" y que tenga un par de botones de "Sí, estoy
seguro" y "No, no creo".
Las distintas posibilidades que tenemos de JOptionPane son:
OptionDialog
InputDialog
MessageDialog
ConfirmDialog
Veamos…
12-11-2009 14:27:46
COMPONENTES DE SWING
JOPTIONPANE : SHOWINPUTDIALOG
• Existen varios métodos JOptionPane.showInputDialog() y la diferencia entre ellos es que tienen
más o menos parámetros, según queramos aceptar o no las opciones por defecto.
• Si usamos los métodos que no tienen array de opciones, la ventana mostrará una caja de texto para
que el usuario escriba la opción que desee (un texto libre). Si usamos un método que tenga un
array de opciones, entonces aparecerá en la ventana un JComboBox en vez de una caja de texto,
donde estarán las opciones que hemos pasado.
• Aquí un par de trozos de código, el primero para conseguir una caja de texto:
12-11-2009 14:27:47
COMPONENTES DE SWING
JOPTIONPANE : SHOMESSAGEDIALOG
• Muestra un diálogo modal con un botón, etiquetado "OK". Se puede especificar fácilmente el
mensaje, el icono y el título que mostrará el diálogo.
JOptionPane.showMessageDialog ( null,
“¡Bienvenido a Java!”,
“Programa de ejemplo”,
JOptionPane.WARNING_MESSAGE );
12-11-2009 14:27:47
COMPONENTES DE SWING
JOPTIONPANE : SHOCONFIRMDIALOG
• Muestra un cuadro de diálogo con dos o tres botones, etiquetados.
• Si y NO : 0
• Si, No, Cancelar: 1
• Aceptar y Cancelar:2
• El cuarto argumento permite cambiar el ícono de la misma forma que el método anterior.
•
12-11-2009 14:27:49
COMPONENTES DE SWING
COMBOBOX (CBO)
• ComboBox nos permite definir un conjunto de datos o valores respuestas asociados a una caja de
selección, así ahora el usuario tendrá la oportunidad de seleccionar un dato del conjunto de datos
o respuestas ya predefinido.
• Al momento de ejecución del programa, toda la lista de respuestas, estarán a la vista del usuario,
para que este ultimo la seleccione.
12-11-2009 14:27:49
CREANDO UNA APLICACIÓN SWING
EJERCICIO N° 6 : CÁLCULO DE NOTAS
12-11-2009 14:27:50
COMPONENTES DE SWING
CHECKBOX (CHK)
• Los botones de comprobación (Checkbox) se utilizan frecuentemente como botones de estado.
Proporcionan información del tipo Sí o No (true o false). El estado del botón se devuelve en el
argumento Object de los eventos Checkbox; el argumento es de tipo booleano: verdadero (true) si
la caja se ha seleccionado y falso (false) en otro caso.
• Tanto el nombre como el estado se devuelven en el argumento del evento, aunque se pueden
obtener a través de los métodos getText() y isSelected() del objeto Checkbox.
12-11-2009 14:27:50
COMPONENTES DE SWING
RADIOBUTTON (OPT)
• El botón de radio (o radio button en inglés) es un elemento de formulario que permite seleccionar
una opción y sólo una, sobre un conjunto de posibilidades. Se puede ver a continuación.
12-11-2009 14:27:50
CREANDO UNA APLICACIÓN SWING
EJERCICIO N° 7 : RAZAS DE PERRO
12-11-2009 14:27:50
CREANDO UNA APLICACIÓN SWING
EJERCICIO N° 8 : VENTAS
Una vez agregados los
componentes al jFrame, manipule
el atributo text de los elementos
para que tengan la apariencia del
ejemplo.
12-11-2009 14:27:51