SlideShare una empresa de Scribd logo
1 de 27
Programación 2
Tema: 3 Programación Visual
Mg. 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
Objetivos de Desarrollo Sostenible
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
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

La actualidad más candente

Introducción a Swing
Introducción a SwingIntroducción a Swing
Introducción a Swingmrojas_unitec
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Omar B.
 
Java - Tutorial Ventanas
Java - Tutorial VentanasJava - Tutorial Ventanas
Java - Tutorial Ventanaselsemieni
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing Laura
 
Guis en java-1pp_2012_
Guis en java-1pp_2012_Guis en java-1pp_2012_
Guis en java-1pp_2012_Robert Wolf
 
Guia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansGuia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansEmerson Garay
 
Contenedores Swing en Netbeans
Contenedores Swing en NetbeansContenedores Swing en Netbeans
Contenedores Swing en NetbeansMarly Encina
 
Interfaces de usuario con awt
Interfaces de usuario con awtInterfaces de usuario con awt
Interfaces de usuario con awtFlashnet S.A
 
Diseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando NetbeansDiseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando NetbeansEmerson Garay
 
Swing
SwingSwing
SwingEPN
 

La actualidad más candente (19)

Introducción a Swing
Introducción a SwingIntroducción a Swing
Introducción a Swing
 
Programacion en JAVA 2
Programacion en JAVA 2Programacion en JAVA 2
Programacion en JAVA 2
 
Swing1
Swing1Swing1
Swing1
 
Java
JavaJava
Java
 
Decorator
DecoratorDecorator
Decorator
 
Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)Interfaz gráfica de usuario y eventos (introducción)
Interfaz gráfica de usuario y eventos (introducción)
 
Java - Tutorial Ventanas
Java - Tutorial VentanasJava - Tutorial Ventanas
Java - Tutorial Ventanas
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 
Guis en java-1pp_2012_
Guis en java-1pp_2012_Guis en java-1pp_2012_
Guis en java-1pp_2012_
 
Guia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansGuia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeans
 
Informe2
Informe2Informe2
Informe2
 
Contenedores Swing en Netbeans
Contenedores Swing en NetbeansContenedores Swing en Netbeans
Contenedores Swing en Netbeans
 
Interfaces de usuario con awt
Interfaces de usuario con awtInterfaces de usuario con awt
Interfaces de usuario con awt
 
Java swing
Java swingJava swing
Java swing
 
Diseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando NetbeansDiseño y validacion GUI con java usando Netbeans
Diseño y validacion GUI con java usando Netbeans
 
Clase swing
Clase swingClase swing
Clase swing
 
Sesion12-Componentes AWT
Sesion12-Componentes AWTSesion12-Componentes AWT
Sesion12-Componentes AWT
 
Sesion12-componentes Visuales java
Sesion12-componentes Visuales javaSesion12-componentes Visuales java
Sesion12-componentes Visuales java
 
Swing
SwingSwing
Swing
 

Similar a Programación GUI

Similar a Programación GUI (20)

S6-P2.pptx
S6-P2.pptxS6-P2.pptx
S6-P2.pptx
 
Ejercicio simple java
Ejercicio simple javaEjercicio simple java
Ejercicio simple java
 
Guia practicaiuprg3
Guia practicaiuprg3Guia practicaiuprg3
Guia practicaiuprg3
 
Programando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte unoProgramando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte uno
 
Java 120706083911-phpapp01
Java 120706083911-phpapp01Java 120706083911-phpapp01
Java 120706083911-phpapp01
 
Diapos de topicos
Diapos de topicosDiapos de topicos
Diapos de topicos
 
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
 
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
 
Taller 1 7
Taller 1 7Taller 1 7
Taller 1 7
 
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
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
Programación i
Programación iProgramación i
Programación i
 
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
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Vbr Awt 01
Vbr Awt 01Vbr Awt 01
Vbr Awt 01
 
12swing gui
12swing gui12swing gui
12swing gui
 
Programacion_II_Interfaz_grafica_guia_I
Programacion_II_Interfaz_grafica_guia_IProgramacion_II_Interfaz_grafica_guia_I
Programacion_II_Interfaz_grafica_guia_I
 

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

2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...wvernetlopez
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfannavarrom
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxJuanPablo452634
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaXimenaFallaLecca1
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 

Último (20)

2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
Ingeniería de Tránsito. Proyecto Geométrico de calles y carreteras, es el pro...
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdfSesión N°2_Curso_Ingeniería_Sanitaria.pdf
Sesión N°2_Curso_Ingeniería_Sanitaria.pdf
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptxProcesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
Procesos-de-la-Industria-Alimentaria-Envasado-en-la-Produccion-de-Alimentos.pptx
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO CersaSesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
Sesión 02 TIPOS DE VALORIZACIONES CURSO Cersa
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 

Programación GUI

  • 1. Programación 2 Tema: 3 Programación Visual Mg. 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. Objetivos de Desarrollo Sostenible 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
  • 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