SlideShare una empresa de Scribd logo
Programación 2
Tema: 3 Programación Visual
PhD(c). Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Tu voluntad se encuentra siempre bajo tu control,
por lo que nada puede detenerte
Objetivo
1. Adquirir los conceptos
básicos relacionados con
la GUI
2. Reconocer las
características de la GUI
● 3.2 Diseño de GUI
Contenido
ODS
● 4.3 De aquí a 2030, asegurar
el acceso igualitario de todos
los hombres y las mujeres a
una formación técnica,
profesional y superior de
calidad, incluida la enseñanza
universitaria
META
3.2 Diseño de GUI
Construcción de una GUI
•diseñar la interfaz de acuerdo a las
especificaciones
•implementar la interfaz usando las
facilidades provistas por el lenguaje.
Botones
Éste es el aspecto cuando se aprieta rojo o verde:
Desarrolle una aplicación que permita establecer el color
de fondo de una ventana. El color será rojo o verde de
acuerdo al botón que se apriete.
La ventana inicialmente debe aparecer así:
//importar paquetes
…
class GuiFondoRojoVerde extends JFrame {
/*Declarar los BOTONES*/
…
public GuiFondoRojoVerde (){
/*Establecer los valores de los atributos del frame*/
…
/*Crear los BOTONES*/
…
/*Crear y registrar los oyentes para los BOTONES*/
…
/*Insertar los BOTONES en el panel de contenido*/
…
}
/*definir clases para establecer el comportamiento de los
BOTONES*/
…
}
Botones
La estructura del código favorece
la legibilidad
//importar paquetes
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
…
Java brinda muchas facilidades a través de paquetes.
El programador importa solo los paquetes que necesita.
El tamaño del código que se genera al compilar depende
solo de las facilidades básicas y los paquetes importados.
Botones
//importar paquetes
…
class GuiFondoRojoVerde extends JFrame {
…
}
Un objeto de clase GuiFondoRojoVerde es también una
instancia de JFrame. Como todo frame un objeto de clase
GuiFondoRojoVerde tiene como atributos el borde, la
barra de título y un panel de contenido.
Botones
//importar paquetes
…
class GuiFondoRojoVerde extends JFrame {
/*Declarar los botones*/
private JButton botonRojo, botonVerde;
…
}
Los atributos de instancia de la clase GuiFondoRojoVerde
son dos variables de la clase JButton provista por Swing.
Botones
public GuiFondoRojoVerde (){
/*Declarar los botones*/
…
/*Establecer los valores de los atributos*/
setLayout(new FlowLayout());
setSize(200, 120);
setDefaultCloseOperation(EXIT_ON_CLOSE);
…
}
Botones
La clase JFrame brinda servicios que permiten establecer los
valores de los atributos del frame, por ejemplo el diagramado
y el tamaño.
public GuiFondoRojoVerde (){
/*Declarar los botones*/
…
/*Establecer los valores de los atributos*/
…
/*Crear los botones*/
botonRojo = new JButton("Rojo");
botonVerde = new JButton("Verde");
Por cada atributo de instancia que corresponde a una
componente gráfica de la GUI, creamos un objeto gráfico.
Botones
public GuiFondoRojoVerde (){
…
/*Crear los botones*/
botonRojo = new JButton("Rojo");
botonVerde = new JButton("Verde");
/*Crear y registrar los oyentes para los botones*/
OyenteBotonR ponerRojo = new OyenteBotonR();
botonRojo.addActionListener(ponerRojo);
Para que un botón sea reactivo debe registrarse a un
objeto oyente.
El programador implementa cada clase de un oyente de
acuerdo al comportamiento que debe exhibir el botón.
Botones
public GuiFondoRojoVerde (){
…
/*Crear los botones*/
botonRojo = new JButton("Rojo");
botonVerde = new JButton("Verde");
/*Crear y registrar los oyentes para los botones*/
OyenteBotonR ponerRojo = new OyenteBotonR();
botonRojo.addActionListener(ponerRojo);
OyenteBotonV ponerVerde = new OyenteBotonV();
botonVerde.addActionListener(ponerVerde);
Botones
public GuiFondoRojoVerde (){
…
/*Insertar los botones en el panel de contenido*/
getContentPane().add(botonRojo);
getContentPane().add(botonVerde);
}
Para que los botones sean visibles deben insertarse en
un contenedor, en este caso el panel de contenido del
frame
Botones
/*definir clases para establecer el comportamiento de
los botones */
class OyenteBotonR implements ActionListener {
public void actionPerformed (ActionEvent event){
getContentPane().setBackground(Color.red);
}
}
Para que un botón reaccione ante una acción del usuario,
debe estar registrado a una clase que implemente a la
interface ActionListener.
Implementar una interface implica definir sus métodos.
En este caso el método actionPerformed que recibe
como parámetro un objeto de clase ActionEvent.
Botones
/* definir clases para establecer el comportamiento de
los botones */
class OyenteBotonR implements ActionListener {
public void actionPerformed(ActionEvent event){
getContentPane().setBackground(Color.red);
}
}
class OyenteBotonV implements ActionListener {
public void actionPerformed(ActionEvent event){
getContentPane().setBackground(Color.green);
}
}
}
Botones
En este ejemplo, cada oyente modifica el color del panel de
contenido de acuerdo al botón que el usuario oprime.
import java.awt.*;
class FondoBotones {
public static void main(String args[ ]) {
GuiFondoRojoVerde f= new GuiFondoRojoVerde();
f.setVisible(true);
}
}
Botones
Botones
Desarrolle una aplicación que permita establecer el
color de un panel. El color será rojo o verde de acuerdo
al botón que se apriete.
Por ejemplo, cuando se oprima el botón verde la
ventana debe aparecer:
//importar paquetes
…
class GuiPanelRojoVerde extends JFrame {
/*Declarar los botones y los paneles */
…
public GuiPanelRojoVerde (){
/*Establecer los valores de los atributos */
…
/*Crear los botones y los paneles*/
…
/*Crear y registrar los oyentes para los botones*/
…
/*Insertar los botones en el panel de botones y los paneles
en el panel de contenido*/
…
}
/*definir clases para los oyentes*/
…
}
Botones
//importar paquetes
…
class GuiPanelRojoVerde extends JFrame {
/*Declarar los botones y los paneles*/
private JButton botonRojo, botonVerde;
private JPanel panelColor, panelBotones;
…
}
Los atributos de GuiPanelRojoVerde son dos botones y
dos paneles.
Botones
public GuiPanelRojoVerde (){
/*Establecer los valores de los atributos */
…
/*Crear los botones y los paneles*/
botonRojo = new JButton("Rojo");
botonVerde = new JButton("Verde");
panelColor= new JPanel();
panelBotones = new JPanel();
…
}
El orden de estas cuatro instrucciones es irrelevante en
ejecución , pero afecta la legibilidad del código.
Botones
public GuiPanelRojoVerde (){
/*Establecer los valores de los atributos */
…
/*Crear y registrar los oyentes para los botones*/
OyenteBotonR ponerRojo = new OyenteBotonR();
botonRojo.addActionListener(ponerRojo);
OyenteBotonV ponerVerde = new OyenteBotonV();
botonVerde.addActionListener(ponerVerde);
…
}
El orden de estas cuatro instrucciones es irrelevante en
ejecución , pero afecta la legibilidad del código.
Botones
public GuiPanelRojoVerde (){
…
/*Insertar los botones en el panel de botones y
los paneles en el panel de contenido*/
panelBotones.add(botonRojo);
panelBotones.add(botonVerde);
getContentPane().add(panelBotones);
getContentPane().add(panelColor);
El orden de estas instrucciones influye en la apariencia de la
GUI, si se invierten las dos últimas, cambia la distribución de
los paneles, dado que por omisión se establece el
diagramado FlowLayout.
Botones
/*definir clases para los oyentes*/
class OyenteBotonR implements ActionListener {
public void actionPerformed(ActionEvent event){
panelColor.setBackground(Color.red);
}
}
class OyenteBotonV implements ActionListener {
public void actionPerformed(ActionEvent event){
panelColor.setBackground(Color.green);
}
}
}
La clase de cada oyente es interna a la clase que
especializa a JFrame y por lo tanto tiene acceso a los
atributos de instancia de GuiPanelRojoVerde, en
particular a panelColor.
Botones
Gracias
Responsabilidad con pensamiento positivo

Más contenido relacionado

Similar a S6-P2.pptx

Eventos
EventosEventos
Eventos
aleja09_40
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
jbersosa
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
zeta2015
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
gerardd98
 
Form y container
Form y containerForm y container
Form y container
zeta2015
 
Programación i
Programación iProgramación i
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
Ricardo Garcia
 
Tema 7 gui, swing y java beans por gio
Tema 7   gui, swing y java beans por gioTema 7   gui, swing y java beans por gio
Tema 7 gui, swing y java beans por gio
Robert Wolf
 
Eventos
EventosEventos
Eventos
negrogatica
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
Ismael Perea
 
Programa simple java julian
Programa simple java julianPrograma simple java julian
Programa simple java julian
coruniversitec
 
Temaswing
TemaswingTemaswing
Temaswing
guest70285f
 
Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4
Robert Wolf
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
Robert Wolf
 
Taller 1 7
Taller 1 7Taller 1 7
12swing gui
12swing gui12swing gui
12swing gui
Oscar Sanchez
 
Tema 6 gui, swing y java beans por gio
Tema 6   gui, swing y java beans por gioTema 6   gui, swing y java beans por gio
Tema 6 gui, swing y java beans por gio
Robert Wolf
 
PLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys GrafcetPLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys Grafcet
SANTIAGO PABLO ALBERTO
 
formularios en Visual Foxpro
formularios en Visual Foxproformularios en Visual Foxpro
formularios en Visual Foxpro
maricela maldonado morales
 
Formularios En Visual Fox Pro
Formularios En Visual Fox ProFormularios En Visual Fox Pro
Formularios En Visual Fox Pro
maricela maldonado morales
 

Similar a S6-P2.pptx (20)

Eventos
EventosEventos
Eventos
 
Java construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awtJava construye las interfaces gráficas del usuario mediante awt
Java construye las interfaces gráficas del usuario mediante awt
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
 
Form y container
Form y containerForm y container
Form y container
 
Programación i
Programación iProgramación i
Programación i
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
Tema 7 gui, swing y java beans por gio
Tema 7   gui, swing y java beans por gioTema 7   gui, swing y java beans por gio
Tema 7 gui, swing y java beans por gio
 
Eventos
EventosEventos
Eventos
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Programa simple java julian
Programa simple java julianPrograma simple java julian
Programa simple java julian
 
Temaswing
TemaswingTemaswing
Temaswing
 
Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Taller 1 7
Taller 1 7Taller 1 7
Taller 1 7
 
12swing gui
12swing gui12swing gui
12swing gui
 
Tema 6 gui, swing y java beans por gio
Tema 6   gui, swing y java beans por gioTema 6   gui, swing y java beans por gio
Tema 6 gui, swing y java beans por gio
 
PLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys GrafcetPLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys Grafcet
 
formularios en Visual Foxpro
formularios en Visual Foxproformularios en Visual Foxpro
formularios en Visual Foxpro
 
Formularios En Visual Fox Pro
Formularios En Visual Fox ProFormularios En Visual Fox Pro
Formularios En Visual Fox Pro
 

Más de Luis Fernando Aguas Bucheli

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
Luis Fernando Aguas Bucheli
 
P-S2.pptx
P-S2.pptxP-S2.pptx
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
P-S3.pptx
P-S3.pptxP-S3.pptx
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S1.pptx
P-S1.pptxP-S1.pptx
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx

Más de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Último

Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
ronnyrocha223
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
ssuser8827cb1
 
BACTERIAS VERDES grupo 1 corregido-1.pptx
BACTERIAS VERDES grupo 1 corregido-1.pptxBACTERIAS VERDES grupo 1 corregido-1.pptx
BACTERIAS VERDES grupo 1 corregido-1.pptx
JuanEnriqueDavilaBar
 
muros de contencion, diseño y generalidades
muros de contencion, diseño y generalidadesmuros de contencion, diseño y generalidades
muros de contencion, diseño y generalidades
AlejandroArturoGutie1
 
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Eliana Gomajoa
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
LuisAngelGuarnizoBet
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
carmenquintana18
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
MaraManuelaUrribarri
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
GERARDO GONZALEZ
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
shirllyleytonm
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
PatoLokooGuevara
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
taniarivera1015tvr
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
angiepalacios6170
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
azulsarase
 
tema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdftema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdf
veronicaluna80
 
slideshare- PRIMER CICLO MIERCOLES Y JUEVES..pptx
slideshare- PRIMER CICLO  MIERCOLES Y JUEVES..pptxslideshare- PRIMER CICLO  MIERCOLES Y JUEVES..pptx
slideshare- PRIMER CICLO MIERCOLES Y JUEVES..pptx
taniarivera1015tvr
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
ANGELJOELSILVAPINZN
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
karenperalta62
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
munozvanessa878
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
DanielaLoaeza5
 

Último (20)

Presentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptxPresentación- de motor a combustión -diesel.pptx
Presentación- de motor a combustión -diesel.pptx
 
chancadoras.............................
chancadoras.............................chancadoras.............................
chancadoras.............................
 
BACTERIAS VERDES grupo 1 corregido-1.pptx
BACTERIAS VERDES grupo 1 corregido-1.pptxBACTERIAS VERDES grupo 1 corregido-1.pptx
BACTERIAS VERDES grupo 1 corregido-1.pptx
 
muros de contencion, diseño y generalidades
muros de contencion, diseño y generalidadesmuros de contencion, diseño y generalidades
muros de contencion, diseño y generalidades
 
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
Enjoy Pasto Bot - "Tu guía virtual para disfrutar del Carnaval de Negros y Bl...
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
 
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICAPRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
PRIMERA Y SEGUNDA LEY DE LA TERMODINÁMICA
 
Infografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - ConstrucciónInfografia - Hugo Hidalgo - Construcción
Infografia - Hugo Hidalgo - Construcción
 
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTOOPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
OPERACIONES BÁSICAS (INFOGRAFIA) DOCUMENTO
 
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-BoshProceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
Proceso de obtenciòn de nitrogeno por el metodo Haber-Bosh
 
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdfFocos SSO Fin de Semana del 31 MAYO A  al 02 de JUNIO  de 2024.pdf
Focos SSO Fin de Semana del 31 MAYO A al 02 de JUNIO de 2024.pdf
 
DIAGRAMA DE FLUJO DE ALGORITMO......
DIAGRAMA DE FLUJO   DE   ALGORITMO......DIAGRAMA DE FLUJO   DE   ALGORITMO......
DIAGRAMA DE FLUJO DE ALGORITMO......
 
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptxEquipo 4. Mezclado de Polímeros quimica de polimeros.pptx
Equipo 4. Mezclado de Polímeros quimica de polimeros.pptx
 
SLIDEHARE.docx..........................
SLIDEHARE.docx..........................SLIDEHARE.docx..........................
SLIDEHARE.docx..........................
 
tema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdftema alcanos cicloalcanos de quimica.pdf
tema alcanos cicloalcanos de quimica.pdf
 
slideshare- PRIMER CICLO MIERCOLES Y JUEVES..pptx
slideshare- PRIMER CICLO  MIERCOLES Y JUEVES..pptxslideshare- PRIMER CICLO  MIERCOLES Y JUEVES..pptx
slideshare- PRIMER CICLO MIERCOLES Y JUEVES..pptx
 
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptxPRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
PRACTICA 2 EDAFOLOGÍA TEXTURA DEL SUELO.pptx
 
diagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingenieríadiagrama de flujo. en el área de ingeniería
diagrama de flujo. en el área de ingeniería
 
tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
 
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomomRinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
Rinitis alérgica-1.pdfuhycrbibxgvyvyjimomom
 

S6-P2.pptx

  • 1. Programación 2 Tema: 3 Programación Visual PhD(c). Luis Fernando Aguas Bucheli +593 984015184 @Aguaszoft Laguas@uisrael.edu.ec
  • 2. Tu voluntad se encuentra siempre bajo tu control, por lo que nada puede detenerte
  • 3. Objetivo 1. Adquirir los conceptos básicos relacionados con la GUI 2. Reconocer las características de la GUI ● 3.2 Diseño de GUI Contenido
  • 4. ODS ● 4.3 De aquí a 2030, asegurar el acceso igualitario de todos los hombres y las mujeres a una formación técnica, profesional y superior de calidad, incluida la enseñanza universitaria META
  • 6. Construcción de una GUI •diseñar la interfaz de acuerdo a las especificaciones •implementar la interfaz usando las facilidades provistas por el lenguaje.
  • 7. Botones Éste es el aspecto cuando se aprieta rojo o verde: Desarrolle una aplicación que permita establecer el color de fondo de una ventana. El color será rojo o verde de acuerdo al botón que se apriete. La ventana inicialmente debe aparecer así:
  • 8. //importar paquetes … class GuiFondoRojoVerde extends JFrame { /*Declarar los BOTONES*/ … public GuiFondoRojoVerde (){ /*Establecer los valores de los atributos del frame*/ … /*Crear los BOTONES*/ … /*Crear y registrar los oyentes para los BOTONES*/ … /*Insertar los BOTONES en el panel de contenido*/ … } /*definir clases para establecer el comportamiento de los BOTONES*/ … } Botones La estructura del código favorece la legibilidad
  • 9. //importar paquetes import java.awt.*; import java.awt.event.*; import javax.swing.*; … Java brinda muchas facilidades a través de paquetes. El programador importa solo los paquetes que necesita. El tamaño del código que se genera al compilar depende solo de las facilidades básicas y los paquetes importados. Botones
  • 10. //importar paquetes … class GuiFondoRojoVerde extends JFrame { … } Un objeto de clase GuiFondoRojoVerde es también una instancia de JFrame. Como todo frame un objeto de clase GuiFondoRojoVerde tiene como atributos el borde, la barra de título y un panel de contenido. Botones
  • 11. //importar paquetes … class GuiFondoRojoVerde extends JFrame { /*Declarar los botones*/ private JButton botonRojo, botonVerde; … } Los atributos de instancia de la clase GuiFondoRojoVerde son dos variables de la clase JButton provista por Swing. Botones
  • 12. public GuiFondoRojoVerde (){ /*Declarar los botones*/ … /*Establecer los valores de los atributos*/ setLayout(new FlowLayout()); setSize(200, 120); setDefaultCloseOperation(EXIT_ON_CLOSE); … } Botones La clase JFrame brinda servicios que permiten establecer los valores de los atributos del frame, por ejemplo el diagramado y el tamaño.
  • 13. public GuiFondoRojoVerde (){ /*Declarar los botones*/ … /*Establecer los valores de los atributos*/ … /*Crear los botones*/ botonRojo = new JButton("Rojo"); botonVerde = new JButton("Verde"); Por cada atributo de instancia que corresponde a una componente gráfica de la GUI, creamos un objeto gráfico. Botones
  • 14. public GuiFondoRojoVerde (){ … /*Crear los botones*/ botonRojo = new JButton("Rojo"); botonVerde = new JButton("Verde"); /*Crear y registrar los oyentes para los botones*/ OyenteBotonR ponerRojo = new OyenteBotonR(); botonRojo.addActionListener(ponerRojo); Para que un botón sea reactivo debe registrarse a un objeto oyente. El programador implementa cada clase de un oyente de acuerdo al comportamiento que debe exhibir el botón. Botones
  • 15. public GuiFondoRojoVerde (){ … /*Crear los botones*/ botonRojo = new JButton("Rojo"); botonVerde = new JButton("Verde"); /*Crear y registrar los oyentes para los botones*/ OyenteBotonR ponerRojo = new OyenteBotonR(); botonRojo.addActionListener(ponerRojo); OyenteBotonV ponerVerde = new OyenteBotonV(); botonVerde.addActionListener(ponerVerde); Botones
  • 16. public GuiFondoRojoVerde (){ … /*Insertar los botones en el panel de contenido*/ getContentPane().add(botonRojo); getContentPane().add(botonVerde); } Para que los botones sean visibles deben insertarse en un contenedor, en este caso el panel de contenido del frame Botones
  • 17. /*definir clases para establecer el comportamiento de los botones */ class OyenteBotonR implements ActionListener { public void actionPerformed (ActionEvent event){ getContentPane().setBackground(Color.red); } } Para que un botón reaccione ante una acción del usuario, debe estar registrado a una clase que implemente a la interface ActionListener. Implementar una interface implica definir sus métodos. En este caso el método actionPerformed que recibe como parámetro un objeto de clase ActionEvent. Botones
  • 18. /* definir clases para establecer el comportamiento de los botones */ class OyenteBotonR implements ActionListener { public void actionPerformed(ActionEvent event){ getContentPane().setBackground(Color.red); } } class OyenteBotonV implements ActionListener { public void actionPerformed(ActionEvent event){ getContentPane().setBackground(Color.green); } } } Botones En este ejemplo, cada oyente modifica el color del panel de contenido de acuerdo al botón que el usuario oprime.
  • 19. import java.awt.*; class FondoBotones { public static void main(String args[ ]) { GuiFondoRojoVerde f= new GuiFondoRojoVerde(); f.setVisible(true); } } Botones
  • 20. Botones Desarrolle una aplicación que permita establecer el color de un panel. El color será rojo o verde de acuerdo al botón que se apriete. Por ejemplo, cuando se oprima el botón verde la ventana debe aparecer:
  • 21. //importar paquetes … class GuiPanelRojoVerde extends JFrame { /*Declarar los botones y los paneles */ … public GuiPanelRojoVerde (){ /*Establecer los valores de los atributos */ … /*Crear los botones y los paneles*/ … /*Crear y registrar los oyentes para los botones*/ … /*Insertar los botones en el panel de botones y los paneles en el panel de contenido*/ … } /*definir clases para los oyentes*/ … } Botones
  • 22. //importar paquetes … class GuiPanelRojoVerde extends JFrame { /*Declarar los botones y los paneles*/ private JButton botonRojo, botonVerde; private JPanel panelColor, panelBotones; … } Los atributos de GuiPanelRojoVerde son dos botones y dos paneles. Botones
  • 23. public GuiPanelRojoVerde (){ /*Establecer los valores de los atributos */ … /*Crear los botones y los paneles*/ botonRojo = new JButton("Rojo"); botonVerde = new JButton("Verde"); panelColor= new JPanel(); panelBotones = new JPanel(); … } El orden de estas cuatro instrucciones es irrelevante en ejecución , pero afecta la legibilidad del código. Botones
  • 24. public GuiPanelRojoVerde (){ /*Establecer los valores de los atributos */ … /*Crear y registrar los oyentes para los botones*/ OyenteBotonR ponerRojo = new OyenteBotonR(); botonRojo.addActionListener(ponerRojo); OyenteBotonV ponerVerde = new OyenteBotonV(); botonVerde.addActionListener(ponerVerde); … } El orden de estas cuatro instrucciones es irrelevante en ejecución , pero afecta la legibilidad del código. Botones
  • 25. public GuiPanelRojoVerde (){ … /*Insertar los botones en el panel de botones y los paneles en el panel de contenido*/ panelBotones.add(botonRojo); panelBotones.add(botonVerde); getContentPane().add(panelBotones); getContentPane().add(panelColor); El orden de estas instrucciones influye en la apariencia de la GUI, si se invierten las dos últimas, cambia la distribución de los paneles, dado que por omisión se establece el diagramado FlowLayout. Botones
  • 26. /*definir clases para los oyentes*/ class OyenteBotonR implements ActionListener { public void actionPerformed(ActionEvent event){ panelColor.setBackground(Color.red); } } class OyenteBotonV implements ActionListener { public void actionPerformed(ActionEvent event){ panelColor.setBackground(Color.green); } } } La clase de cada oyente es interna a la clase que especializa a JFrame y por lo tanto tiene acceso a los atributos de instancia de GuiPanelRojoVerde, en particular a panelColor. Botones