Professional Documents
Culture Documents
TEMARIO
INTRODUCCIÓN A LA
PROGRAMACIÓN ORIENTADA
• Repaso.
A OBJETOS • Construcción de una GUI.
01100 • Paquetes gráficos. 01100
GUI 10011 10011
10110 • Ventanas y frames. 10110
Botones y oyentes 01110
01100 • Organizador de diagramado.
01110
01100
10011 10011
10110 • Paneles. 10110
Dr. Luciano H. Tamargo 01110 01110
http://cs.uns.edu.ar/~lt 1001 • Botones. 1001
Depto. de Ciencias e Ingeniería de la Computación 1 11 1 11
Universidad Nacional del Sur, Bahía Blanca 0 0 • Caso de estudio: Elegir bebida. 0 0
2018 1 1
2
REPASO REPASO
• Una interface gráfica de usuario (GUI) es un medio • La construcción de una GUI está fuertemente
que permite que una persona se comunique y controle relacionada con los conceptos de:
un sistema a través de ventanas, botones, menúes, etc. – Encapsulamiento
• Una GUI se construye a partir de una colección de – Herencia
01100 01100
componentes con una representación gráfica y 10011 – Polimorfismo 10011
capacidad para percibir eventos generados por las 10110
• Y con los criterios de: 10110
acciones del usuario. 01110 01110
01100 – Reusabilidad 01100
10011 10011
10110 – Extensibilidad 10110
01110 01110
1001 1001
1 11 1 11
0 0 0 0
1 1
3 4
• Repaso.
• Construcción de una GUI. • Diseñar la interfaz de acuerdo a las especificaciones.
IMPLEMENTACIÓN DE UNA
DISEÑO DE UNA GUI
GUI
javax.swing
java.lang.Object • Repaso.
java.awt.Component
java.awt.Container • Construcción de una GUI.
java.awt.Window 01100 • Paquetes gráficos. 01100
java.awt.Frame 10011 10011
javax.swing.JFrame
10110 • Ventanas y frames. 10110
01110 01110
01100 • Organizador de diagramado. 01100
10011 10011
• La clase Frame agrega a la clase Window el marco, la1 0 1 1 0 • Paneles. 10110
línea de título y los botones 01110 01110
1001 • Botones. 1001
• La clase JFrame agrega a Frame el panel de contenido1 11 1 11
donde se insertan las componentes. 0 0 • Caso de estudio: Elegir bebida. 0 0
1 1
13 14
ORGANIZADOR DE ORGANIZADOR DE
DIAGRAMADO DIAGRAMADO
• El organizador de diagramado es un atributo de todos • FlowLayout: Distribuye los componentes uno al lado
los objetos gráficos contenedores que determina como del otro comenzando en la parte superior.
se distribuyen las componentes contenidas. • BorderLayout: Divide el contenedor en cinco
• Algunas de las clases provistas para crear regiones: NORTH, SOUTH, EAST, WEST y CENTER,
01100 admite un único componente por región. 01100
organizadores son BorderLayout, FlowLayout, 10011 10011
GridLayout. 10110 • GridLayout: Divide el contenedor en una grilla de n1 0 1 1 0
01110 filas por m columnas, con todas las celdas de igual 01110
• En la clase práctica y en la clase de laboratorio 01100 01100
tamaño.
trabajarán con distintos diagramados. 10011 10011
10110 10110
• En el parcial no van a tener que establecer el 01110 01110
diagramado, solo reconocer las instrucciones que 1001 1001
1 11 1 11
organizan a los objetos contenedores. 0 0 0 0
1 1
23 24
TEMARIO PANELES
PANELES TEMARIO
BOTONES BOTONES
• Un botón es una componente reactiva, puede percibir • Desarrolle una aplicación que permita establecer el color
la acción del usuario y reaccionar de acuerdo al de fondo de una ventana. El color será rojo o verde de
comportamiento establecido por un objeto oyente. acuerdo al botón que se apriete.
• Algunos de los atributos son texto, imagen, alineación • La ventana inicialmente debe aparecer así:
del texto y de la imagen, color, borde, letra 01100 01100
10011 10011
mnemónica y forma, además, puede estar habilitado 1o0 1 1 0 10110
no. 01110 01110
01100 01100
10011 10011
10110 • Éste es el aspecto cuando se aprieta rojo o verde: 10110
01110 01110
1001 1001
1 11 1 11
0 0 0 0
1 1
29 30
//importar paquetes
…BOTONES BOTONES
class GuiFondoRojoVerde extends JFrame {
/*Declarar los BOTONES*/
… //importar paquetes
public GuiFondoRojoVerde (){ import java.awt.*;
/*Establecer los valores de los atributos del frame*/ import java.awt.event.*;
… import javax.swing.*;
/*Crear los BOTONES*/ 01100 … 01100
… 10011 10011
10110 10110
/*Crear y registrar los oyentes para los BOTONES*/
01110 • Java brinda muchas facilidades a través de paquetes. 0 1 1 1 0
… 01100 01100
/*Insertar los BOTONES en el panel de contenido*/1 0 0 1 1 • El programador importa solo los paquetes que necesita.1 0 0 1 1
… 10110 10110
} 01110 • El tamaño del código que se genera al compilar depende 01110
1001 1001
solo de las facilidades básicas y los paquetes importados.
/*definir clases para establecer el comportamiento 1 11
de 1 11
los BOTONES*/ 0 0 0 0
… La estructura del código1 1
} favorece la legibilidad 31 32
BOTONES BOTONES
BOTONES BOTONES
BOTONES BOTONES
BOTONES BOTONES
BOTONES BOTONES
//importar paquetes
BOTONES …
class GuiPanelRojoVerde extends JFrame {
/*Declarar los botones y los paneles */
• Desarrolle una aplicación que permita establecer el color …
public GuiPanelRojoVerde (){
de un panel. El color será rojo o verde de acuerdo al
/*Establecer los valores de los atributos */
botón que se apriete. …
• Por ejemplo, cuando se oprima el botón verde la /*Crear los botones y los paneles*/
01100
ventana debe aparecer: 10011
…
10110 /*Crear y registrar los oyentes para los
01110 botones*/
01100 …
10011 /*Insertar los botones en el panel de botones y
10110
01110 los paneles en el panel de contenido*/
1001 …
1 11 }
0 0 /*definir clases para los oyentes*/
1
…
43 } 44
BOTONES BOTONES
BOTONES BOTONES
/*definir clases para los oyentes*/
public GuiPanelRojoVerde (){ class OyenteBotonR implements ActionListener {
… public void actionPerformed(ActionEvent event){
/*Insertar los botones en el panel de panelColor.setBackground(Color.red);
botones y los paneles en el panel de }
contenido*/ 01100 } 01100
panelBotones.add(botonRojo); 10011 class OyenteBotonV implements ActionListener 1{0 0 1 1
10110 10110
public void actionPerformed(ActionEvent event){
panelBotones.add(botonVerde); 01110 01110
getContentPane().add(panelBotones); 01100 panelColor.setBackground(Color.green); 0 1 1 0 0
getContentPane().add(panelColor); 10011 } 10011
10110 } 10110
01110 01110
• El orden de estas instrucciones influye en la apariencia
1001 1001
• La clase de cada oyente es interna a la clase 1 que
de la GUI, si se invierten las dos últimas, cambia1 la1 1 11
0 0 especializa a JFrame y por lo tanto tiene acceso a0 los
0
distribución de los paneles, dado que por omisión 1se atributos de instancia de GuiPanelRojoVerde,1 en
establece el diagramado FlowLayout. 47 particular a panelColor. 48