Anda di halaman 1dari 34

UNIDAD III : ELEMENTOS

AVANZADOS DEL LENGUAJE JAVA

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;
}

public void caminar(){


12-11-2009 14:27:36
HERENCIA, POLIMORFISMO E INTERFAZ

• La herencia consiste en definir una nueva


clase describiendo únicamente las
características que la diferencian de alguna
clase previamente definida.
public class Persona{
private String nombre;
private String direccion;
private int anioNacimiento;

Public Persona(){
anioNacimiento =2009;
}

public void caminar(){



12-11-2009 14:27:36 }
HERENCIA, POLIMORFISMO E INTERFAZ
public class Alumno extends Persona{

private int nroMatricula;


private String carrera;
private int semestre;

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.1® Mejoras en AWT

• 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.

Un contenedor de Alto Nivel Swing proporciona el soporte que necesitan los


componentes Swing para realizar su dibujado y su manejo de eventos.
Prefijo: frm
Atributos Importantes:
defalutCloseOperation: EXIT_ON_CLOSE:Termina la
aplicación, usando System.exit(0).
title: Modifica el título de la 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:

•Jlabel (etiqueta para mostrar texto)


•JTextBox y JTextArea (cajas de texto para la entrada de datos)
•JButton (Botón)
•JCheckBox (caja de comprobación, para elegir opciones)
•jRadioButton (para elegir opciones mutuamente excluyentes)
•JComboBox (Lista desplegable de opciones)
•JMenuBar, Jmenu, JMenuItem (barras de menú)
•JOptionPane (Ventanas de diálogo)

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

EL usuario pasa el mouse sobre un componente MouseMotionListener


Un componente se hace visible ComponentListener
Un componente adquiere el foco del teclado FocusListener
Cambia la selección en una lista o una tabla ListSelectionListener

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.

Utilizando el método “doClick()”,


del botón, programe un listener
para el jTextField para suceda lo
mismo al presionar enter.
12-11-2009 14:27:43
CREANDO UNA APLICACIÓN SWING
EJERCICIO N° 5 : CALCULADORA

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 de los


botones para que simulen el
funcionamiento de una
calculadora.

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:

entrada = JOptionPane.showInputDialog ( null,


"Introduzca un valor",
"Otro programa en Java",
JOptionPane.INFORMATION_MESSAGE );

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.

showConfirmDialog(rootPane, "Mensaje", "Titulo del mensaje", 2, 0);

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

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 lo necesario para que la


aplicación calcule la nota de
presentación de la asignatura
seleccionada en el combobox.
Recuerde que algunas asignaturas
son prácticas y otras lectivas, por lo
que debe preguntar la nota del
examen para las asignaturas que lo
requieran.

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

Una vez agregados los


componentes al jFrame, manipule
el atributo text de los RadioButtons
para que tengan la apariencia del
ejemplo.

Programe lo necesario para que la


aplicación muestre en el jLabel de
la derecha una imagen referente a
la raza seleccionada cada vez que
se seleccione un RadioButton.

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.

Programe lo necesario para que la


aplicación calcule el total a pagar
por el producto seleccionado en el
comoBox, conociendo su precio
unitario que se escribirá en el
texField correspondiente una vez
seleccionado el producto.

12-11-2009 14:27:51

Anda mungkin juga menyukai