SlideShare uma empresa Scribd logo
1 de 53
Java GUI La librería Swing
Programación conducida por eventos  En programas tradicionales (basados en texto):      el programa controla el flujo de la ejecución      el programa controla la secuencia de las entradas  Los programas con GUI son “event-driven”      la secuencia de las entradas controlan el flujo de la       ejecución  el sistema invoca código del usuario
Programación conducida por eventos Código del sistema Su código
Generación de eventos Las acciones tales como: pulsar un botón, mover el mouse, etc. son reconocidas e identificadas por los sistemas operativos (OS) o la JVM. 2. Por cada acción el OS/JVM determinan cuál de los     programas que se están ejecutando recibirán la señal (de la acción). 3. Las señales que la aplicaciones reciben del OS/JVM como resultado de una acción son llamadas eventos.
Generación de eventos GUI Acciones Mouse, Teclado,etc. Sistema Operativo JAVA API /Windows Eventos Métodos Métodos Aplicación 1 Aplicación 2
Manejo de eventos  Una aplicación responde a los eventos ejecutando código adecuado para cada tipo particular de eventos.  No todos los eventos necesitan ser tenidos en cuenta poruna aplicación. Por ejemplo: Una aplicación para dibujar puede estar interesada sólo en movimientos del mouse.  Como diseñador de una aplicación manejada por eventos,  deberá escribir clases/métodos para manejar los eventos  relevantes.
Java GUI  Java provee dos librerías para crear GUIs:      Java AWT (Abstract Window Toolkit)      Java Foundation Classes (JFC o Swing), a partirde Java2
Java Foundation Classes  JFC es una colección muy grande de software.  AWT y Swing son las dosgrandes familias para desarrollo de GUI en  el entorno Java.   Swing AWT Drag & Drop 2D API JFC APIs Accessibility
Java Foundation Classes
Swing  Implementada sin usar código nativo (100% Java),  con lo cual la GUI se verá de la misma forma  en distintas plataformas.  Basada en la arquitectura MVC.  Ofrece una amplia variedad de Look & Feel.  Los componentes de Swing continuarán siendo  mejorados en el futuro.
AWT y Swing  Los componentes de Swing tienen nombres que  comienzan con J.  Ejemplo: Button en AWT es JButton en Swing  Los componentes de AWT están en el paquete   java.awt, los de Swing en javax.swing.  import javax.swing.*;  import java.awt.*;  import java.awt.event.*;
Paquetes JFC/Swing ,[object Object]
javax.swing.table
javax.swing.tree
javax.swing.border
javax.swing.colorchooser
javax.swing.filechooser
javax.swing.event
javax.swing.undo
javax.swing.plaf
javax.swing.plaf.basic
javax.swing.plaf.metal
javax.swing.plaf.multi
javax.swing.text
javax.swing.text.html
javax.swing.text.html.parser
javax.swing.text.rtf,[object Object]
Aplicaciones basadas en GUI  El desarrollo de una aplicación basada en GUI requiere la comprensión de:     Estructura de la jerarquía de herencia, que define el comportamiento y atributos de los componentes en la GUI de la aplicación.     Estructura de la jerarquía de contenedores,que      define cómo se disponen todos los componentes en la GUI de la aplicación.      Manejo de eventos.
Jerarquía de Herencia
Contenedores en Swing
Similar a AWT
Componentes de Swing  La clase Component (y sus subclases) proveen soporte  para manejo de eventos, cambio del tamaño de un componente, control de color y fuentes, pintado.  Un componente es un objeto de una subclase concreta. Se distinguen dos clases de componentes:  Componentes de control de la GUI: la interacción de la GUI con el usuario  se realiza a través de ellos.     Contenedores: contienen otros componentes (u otros      contenedores).
Contenedores  Anidamiento de componentes (Jerarquía de contenedores en contraste con la Jerarquía de herencia). Cada  programa Swing contiene al menos una.   Swing provee 4 contenedores de alto nivel (ventana   base de la GUI):  JFrame, JApplet, JDialog y JWindow.  La jerarquía está compuesta de diferentes capas.   Cada contenedor de alto nivel contiene un contenedor  intermedio conocido como “contentpane”.En casi todos  los programas no es necesario conocer qué hay entre el contenedor de alto nivel y el contentpane.
Jerarquía de contenedores
Ejemplo importjavax.swing.JFrame; importjavax.swing.JPanel; importjava.awt.Container; importjava.awt.Color; publicclass Ejemplo { publicstaticvoidmain(Stringargs[]){ //Se crea un objeto JPAnel de 300X300 y color rojo JPanelpanelRojo =new JPanel(); panelRojo.setBackground(Color.RED); panelRojo.setSize(300,300); //Se crea una ventana de 300X300 JFrame ventana=new JFrame("Prueba en rojo"); ventana.setLocation(100,100); ventana.setSize(300,300); ventana.setVisible(true); //Se coloca el JPanel en el contentpane ContainercontentPane=ventana.getContentPane(); contentPane.add(panelRojo); } }
Jerarquía de contenedores  La apariencia de una GUI está determinada por:      La jerarquía de contenedores      El Layout Manager de cada contenedor      Las propiedades de los componentes individuales  Todos estos ítems trabajan en conjunto para determinarel efecto visual final.
Estructura de un JFrame
Content Panes  Usualmente es un JPanel.  En la mayoría de las aplicaciones Swing contiene casi   todo, excepto la barra de menú.  Debe ser creado explícitamente.
Contenedores de alto nivel Applet      Dialog Frame
Contenedores generales Scroll Pane SplitPane Panel Toolbar TabbedPane
JFrame
Algunos métodos de JFrame  Para construir una ventana con un título y mostrarla:    JFrame theWindow = new JFrame( "Graffiti" );    theWindow.show( );    //idem theWindow.setVisible(true);  Para determinar su tamaño: theWindow.setJMenuBar(cyanMenuBar); theWindow.setSize( 220, 100 );//o mejor theWindow.pack();
Nueva funcionalidad de JFrame  setDefaultCloseOperation(int) es la másimportante:  DO_NOTHING_ON_CLOSE   HIDE_ON_CLOSE (default) oculta el frame cuandoel       usuario lo cierrapero no se deshace de los recursosdel       sistemaasociados (puedovolver a mostrar).  DISPOSE_ON_CLOSE oculta el frame y llama al método dispose(), paraliberarrecursos.   EXIT_ON_CLOSE, cierra la aplicación (System.exit(0))
Hello World en Swing importjavax.swing.*; importjava.awt.event.*; publicclassHolaMundo { publicstaticvoidmain(String[] args) { JFrameframe = new JFrame("HolaMundoSwing");         final JLabellabel = new JLabel("Hola Mundo"); frame.getContentPane().add(label);         //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.addWindowListener(new java.awt.event.WindowAdapter(){ publicvoidwindowClosing(WindowEvent e){ System.exit(0);            }         }         ); frame.pack(); frame.setVisible(true);     } }
Componentes atómicos ,[object Object],[object Object]
Componentes atómicos no editables Tool tip Label Progress Bar
Otros componentes atómicos Color Chooser File Chooser Table Text Tree
API de los componentes GUI  Componente GUI en Java= class     Propiedades  Métodos     Eventos JButton
Componentes GUI  1.- Crear        Instanciar objeto: b = new JButton(“press me”); 2.- Configurar        Propiedades: b.text = “press me”;(evitar en Java)        Métodos:             b2 = new JButton("Middlebutton", middleButtonIcon);         b2.setVerticalTextPosition(AbstractButton.BOTTOM);           b2.setHorizontalTextPosition(AbstractButton.CENTER); b2.setMnemonic(KeyEvent.VK_M);           b2.setToolTipText("Thismiddlebuttondoesnothing “             + "whenyouclickit."); 3.- Añadir         panel.add(b); 4.- Manejar eventos
Características especiales  Los componentes Swing ofrecen características especiales:
Características especiales  Tool tips 	JButton button = new JButton ("Compute"); 	button.setToolTipText ("Calculate size.");  Mnemonic       button.setMnemonic ("C");  Disable       JButton button = new JButton (“Do It”); 	button.setEnabled (false);
import java.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclassUnJBoton  {   public static void main(String args[]) { Frame f = new Frame(); JButton b = new JButton("Pulsame");       f.add(b); f.pack(); f.setVisible(true); b.addActionListener(new ActionListener() { publicvoidactionPerformed(ActionEvent e) { System.out.println("HOLA"); 	      } 	  });   } }
importjavax.swing.*; import java.awt.*; publicclass Botones extendsJButton { publicstaticvoidmain(String[] args) { JFrame f = new JFrame(); Iconicon  = new ImageIcon("b1.gif"); Iconiconp = new ImageIcon("b2.gif"); Iconiconr = new ImageIcon("b3.gif"); Iconicond = new ImageIcon("b4.gif"); JButton b1 = new JButton("Pulsame",icon); JButton b2 = new JButton("Pulsame",iconp); JButton b3 = new JButton("Pulsame",iconr); JButton b4 = new JButton("Pulsame",icon);         b1.setEnabled(false); 	b1.setDisabledIcon(icond); 	b1.setRolloverIcon(iconr); 	b1.setPressedIcon(iconp); Container c = f.getContentPane(); c.setLayout(new FlowLayout()); 	c.add(b1); 	c.add(b2); 	c.add(b3); 	c.add(b4); f.pack(); f.setVisible(true);     } }

Mais conteúdo relacionado

Mais procurados

Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficaciónAndhy H Palma
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estadosstill01
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetosalcrrsc
 
Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)sarai0000
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basicromeprofe
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosJosé Antonio Sandoval Acosta
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estadoguest5ed375
 
Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!Marco Avendaño
 

Mais procurados (20)

Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
 
Java swing
Java swingJava swing
Java swing
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
3.creacion de componentes visuales
3.creacion de componentes visuales3.creacion de componentes visuales
3.creacion de componentes visuales
 
Presentación JavaScript
Presentación JavaScriptPresentación JavaScript
Presentación JavaScript
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Metodología orientada a objetos
Metodología orientada a objetosMetodología orientada a objetos
Metodología orientada a objetos
 
Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Qué es visual basic
Qué es visual basicQué es visual basic
Qué es visual basic
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Diagramas De Estado
Diagramas De EstadoDiagramas De Estado
Diagramas De Estado
 
Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!
 
Elementos Swing
Elementos SwingElementos Swing
Elementos Swing
 

Semelhante a Java GUI La librería Swing

Semelhante a Java GUI La librería Swing (20)

Java 120706083911-phpapp01
Java 120706083911-phpapp01Java 120706083911-phpapp01
Java 120706083911-phpapp01
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
Java
JavaJava
Java
 
Clase 5 JAVA 2012
Clase 5 JAVA 2012Clase 5 JAVA 2012
Clase 5 JAVA 2012
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Trabajo teórico exposcición
Trabajo teórico exposciciónTrabajo teórico exposcición
Trabajo teórico exposcición
 
Guis en java-1pp_2011_
Guis en java-1pp_2011_Guis en java-1pp_2011_
Guis en java-1pp_2011_
 
Guis en java-1pp_2012_
Guis en java-1pp_2012_Guis en java-1pp_2012_
Guis en java-1pp_2012_
 
Guis_en_java_6pp.pdf
Guis_en_java_6pp.pdfGuis_en_java_6pp.pdf
Guis_en_java_6pp.pdf
 
Clase swing
Clase swingClase swing
Clase swing
 
Programacion en JAVA 2
Programacion en JAVA 2Programacion en JAVA 2
Programacion en JAVA 2
 
Swin01
Swin01Swin01
Swin01
 
Interfaces graficas(1)
Interfaces graficas(1)Interfaces graficas(1)
Interfaces graficas(1)
 
Tema6resumido
Tema6resumidoTema6resumido
Tema6resumido
 
Programación i
Programación iProgramación i
Programación i
 
Eventos
EventosEventos
Eventos
 
Taller 1 7
Taller 1 7Taller 1 7
Taller 1 7
 
JAVA Interfaz gráfica (GUI)
JAVA Interfaz gráfica (GUI)JAVA Interfaz gráfica (GUI)
JAVA Interfaz gráfica (GUI)
 
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
 
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
 

Mais de Laura

Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)Laura
 
Evaluación de Proyectos temas 3.7, 4.1 y 4.2
Evaluación de Proyectos temas 3.7, 4.1 y 4.2Evaluación de Proyectos temas 3.7, 4.1 y 4.2
Evaluación de Proyectos temas 3.7, 4.1 y 4.2Laura
 
3.5.5 Financiamiento (Administración de la Función Informática)
3.5.5 Financiamiento (Administración de la Función Informática)3.5.5 Financiamiento (Administración de la Función Informática)
3.5.5 Financiamiento (Administración de la Función Informática)Laura
 
Motivación
MotivaciónMotivación
MotivaciónLaura
 
Comunicación en el grupo
Comunicación en el grupoComunicación en el grupo
Comunicación en el grupoLaura
 
Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a EventosLaura
 

Mais de Laura (6)

Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)Modo de transferencia asíncrona/síncrona (ATM)
Modo de transferencia asíncrona/síncrona (ATM)
 
Evaluación de Proyectos temas 3.7, 4.1 y 4.2
Evaluación de Proyectos temas 3.7, 4.1 y 4.2Evaluación de Proyectos temas 3.7, 4.1 y 4.2
Evaluación de Proyectos temas 3.7, 4.1 y 4.2
 
3.5.5 Financiamiento (Administración de la Función Informática)
3.5.5 Financiamiento (Administración de la Función Informática)3.5.5 Financiamiento (Administración de la Función Informática)
3.5.5 Financiamiento (Administración de la Función Informática)
 
Motivación
MotivaciónMotivación
Motivación
 
Comunicación en el grupo
Comunicación en el grupoComunicación en el grupo
Comunicación en el grupo
 
Programacion Orientada a Eventos
Programacion Orientada a EventosProgramacion Orientada a Eventos
Programacion Orientada a Eventos
 

Último

140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.doc140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.docilvrosiebp
 
cabildo abierto forma de participación ciudadana
cabildo abierto forma de participación ciudadanacabildo abierto forma de participación ciudadana
cabildo abierto forma de participación ciudadanaMarsielMendoza1
 
Anexo Nivel 3 Ficha Lectura pptjsbdkks
Anexo  Nivel 3 Ficha  Lectura pptjsbdkksAnexo  Nivel 3 Ficha  Lectura pptjsbdkks
Anexo Nivel 3 Ficha Lectura pptjsbdkkscristinacastro892534
 
CATALOGO 2024 DIA DE LA MADRE, presentación.pdf
CATALOGO 2024 DIA DE LA MADRE, presentación.pdfCATALOGO 2024 DIA DE LA MADRE, presentación.pdf
CATALOGO 2024 DIA DE LA MADRE, presentación.pdftortillasdemaizjf2
 
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDADGROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDADGersonManuelRodrigue1
 
secuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulossecuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulosRosarioLloglla
 
Fundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principalesFundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principalesLuis Fernando Salgado
 
Manual de Construcción TATAMI - 2024.pdf
Manual de Construcción TATAMI - 2024.pdfManual de Construcción TATAMI - 2024.pdf
Manual de Construcción TATAMI - 2024.pdfGermnBelzunce1
 
Espacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesEspacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesespejosflorida
 
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRYPLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRYkarendaza9506
 
ARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILE
ARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILEARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILE
ARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILEhayax3
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezPaola575380
 
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxPLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxLeo Florez
 
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...chechei12040303
 
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNALPOESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNALEvaMaraMorenoLago1
 
Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....estefaniaortizsalina
 
Introduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptxIntroduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptxcalc5597
 
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfINICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfBrbara57940
 
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfSlaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfslaimenbarakat
 

Último (20)

DIAGNOSTICO URBANO DE DE LA ISLA DE COCHE
DIAGNOSTICO URBANO DE DE LA ISLA DE COCHEDIAGNOSTICO URBANO DE DE LA ISLA DE COCHE
DIAGNOSTICO URBANO DE DE LA ISLA DE COCHE
 
140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.doc140254879-Triptico-Color-Dia-de-La-Madre.doc
140254879-Triptico-Color-Dia-de-La-Madre.doc
 
cabildo abierto forma de participación ciudadana
cabildo abierto forma de participación ciudadanacabildo abierto forma de participación ciudadana
cabildo abierto forma de participación ciudadana
 
Anexo Nivel 3 Ficha Lectura pptjsbdkks
Anexo  Nivel 3 Ficha  Lectura pptjsbdkksAnexo  Nivel 3 Ficha  Lectura pptjsbdkks
Anexo Nivel 3 Ficha Lectura pptjsbdkks
 
CATALOGO 2024 DIA DE LA MADRE, presentación.pdf
CATALOGO 2024 DIA DE LA MADRE, presentación.pdfCATALOGO 2024 DIA DE LA MADRE, presentación.pdf
CATALOGO 2024 DIA DE LA MADRE, presentación.pdf
 
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDADGROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
GROPUIS Y WRIGHT DIPOSITIVA ARQUITECTURA DISEÑO MODERNIDAD
 
secuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulossecuencias de los figuras de cuadros y rectangulos
secuencias de los figuras de cuadros y rectangulos
 
Fundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principalesFundamentos de la Ergonomía y sus características principales
Fundamentos de la Ergonomía y sus características principales
 
Manual de Construcción TATAMI - 2024.pdf
Manual de Construcción TATAMI - 2024.pdfManual de Construcción TATAMI - 2024.pdf
Manual de Construcción TATAMI - 2024.pdf
 
Espacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientesEspacios únicos creados por nuestros clientes
Espacios únicos creados por nuestros clientes
 
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRYPLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
PLANTILLA UNAD JJAJJJJJWRBJHGURGERRTERTRTRY
 
ARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILE
ARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILEARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILE
ARQUITECTURA ESCOLAR PÚBLICA COMO PATRIMONIO MODERNO EN CHILE
 
Afiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola PerezAfiche de arquitectura manierista Paola Perez
Afiche de arquitectura manierista Paola Perez
 
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docxPLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
PLAN DE MANTENIMIENTO DE SISTEMAS DE AGUA CHONTAYOC.docx
 
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
Apuntes de criterios estrcuturales, calculo de trabes y contratrabes de concr...
 
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNALPOESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
POESÍA ERÓTICA DEL SIGLO XVIII - SERIA Y CARNAL
 
Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....Torre agbar analisis arquitectonico.....
Torre agbar analisis arquitectonico.....
 
Introduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptxIntroduccion-a-los-numeros-en-ingles.pptx
Introduccion-a-los-numeros-en-ingles.pptx
 
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdfINICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
INICIOS DEL MOVIMIENTO MODERNO 1900-1930.pdf
 
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdfSlaimen Barakat - SLIDESHARE TAREA 3.pdf
Slaimen Barakat - SLIDESHARE TAREA 3.pdf
 

Java GUI La librería Swing

  • 1. Java GUI La librería Swing
  • 2. Programación conducida por eventos  En programas tradicionales (basados en texto):  el programa controla el flujo de la ejecución  el programa controla la secuencia de las entradas  Los programas con GUI son “event-driven”  la secuencia de las entradas controlan el flujo de la ejecución  el sistema invoca código del usuario
  • 3. Programación conducida por eventos Código del sistema Su código
  • 4. Generación de eventos Las acciones tales como: pulsar un botón, mover el mouse, etc. son reconocidas e identificadas por los sistemas operativos (OS) o la JVM. 2. Por cada acción el OS/JVM determinan cuál de los programas que se están ejecutando recibirán la señal (de la acción). 3. Las señales que la aplicaciones reciben del OS/JVM como resultado de una acción son llamadas eventos.
  • 5. Generación de eventos GUI Acciones Mouse, Teclado,etc. Sistema Operativo JAVA API /Windows Eventos Métodos Métodos Aplicación 1 Aplicación 2
  • 6. Manejo de eventos  Una aplicación responde a los eventos ejecutando código adecuado para cada tipo particular de eventos.  No todos los eventos necesitan ser tenidos en cuenta poruna aplicación. Por ejemplo: Una aplicación para dibujar puede estar interesada sólo en movimientos del mouse.  Como diseñador de una aplicación manejada por eventos, deberá escribir clases/métodos para manejar los eventos relevantes.
  • 7. Java GUI  Java provee dos librerías para crear GUIs:  Java AWT (Abstract Window Toolkit)  Java Foundation Classes (JFC o Swing), a partirde Java2
  • 8. Java Foundation Classes  JFC es una colección muy grande de software.  AWT y Swing son las dosgrandes familias para desarrollo de GUI en el entorno Java. Swing AWT Drag & Drop 2D API JFC APIs Accessibility
  • 10. Swing  Implementada sin usar código nativo (100% Java), con lo cual la GUI se verá de la misma forma en distintas plataformas.  Basada en la arquitectura MVC.  Ofrece una amplia variedad de Look & Feel.  Los componentes de Swing continuarán siendo mejorados en el futuro.
  • 11. AWT y Swing  Los componentes de Swing tienen nombres que comienzan con J.  Ejemplo: Button en AWT es JButton en Swing  Los componentes de AWT están en el paquete java.awt, los de Swing en javax.swing.  import javax.swing.*; import java.awt.*; import java.awt.event.*;
  • 12.
  • 27.
  • 28. Aplicaciones basadas en GUI  El desarrollo de una aplicación basada en GUI requiere la comprensión de:  Estructura de la jerarquía de herencia, que define el comportamiento y atributos de los componentes en la GUI de la aplicación.  Estructura de la jerarquía de contenedores,que define cómo se disponen todos los componentes en la GUI de la aplicación.  Manejo de eventos.
  • 32. Componentes de Swing  La clase Component (y sus subclases) proveen soporte para manejo de eventos, cambio del tamaño de un componente, control de color y fuentes, pintado.  Un componente es un objeto de una subclase concreta. Se distinguen dos clases de componentes:  Componentes de control de la GUI: la interacción de la GUI con el usuario se realiza a través de ellos.  Contenedores: contienen otros componentes (u otros contenedores).
  • 33. Contenedores  Anidamiento de componentes (Jerarquía de contenedores en contraste con la Jerarquía de herencia). Cada programa Swing contiene al menos una.  Swing provee 4 contenedores de alto nivel (ventana base de la GUI): JFrame, JApplet, JDialog y JWindow.  La jerarquía está compuesta de diferentes capas. Cada contenedor de alto nivel contiene un contenedor intermedio conocido como “contentpane”.En casi todos los programas no es necesario conocer qué hay entre el contenedor de alto nivel y el contentpane.
  • 35. Ejemplo importjavax.swing.JFrame; importjavax.swing.JPanel; importjava.awt.Container; importjava.awt.Color; publicclass Ejemplo { publicstaticvoidmain(Stringargs[]){ //Se crea un objeto JPAnel de 300X300 y color rojo JPanelpanelRojo =new JPanel(); panelRojo.setBackground(Color.RED); panelRojo.setSize(300,300); //Se crea una ventana de 300X300 JFrame ventana=new JFrame("Prueba en rojo"); ventana.setLocation(100,100); ventana.setSize(300,300); ventana.setVisible(true); //Se coloca el JPanel en el contentpane ContainercontentPane=ventana.getContentPane(); contentPane.add(panelRojo); } }
  • 36. Jerarquía de contenedores  La apariencia de una GUI está determinada por:  La jerarquía de contenedores  El Layout Manager de cada contenedor  Las propiedades de los componentes individuales  Todos estos ítems trabajan en conjunto para determinarel efecto visual final.
  • 38. Content Panes  Usualmente es un JPanel.  En la mayoría de las aplicaciones Swing contiene casi todo, excepto la barra de menú.  Debe ser creado explícitamente.
  • 39. Contenedores de alto nivel Applet Dialog Frame
  • 40. Contenedores generales Scroll Pane SplitPane Panel Toolbar TabbedPane
  • 42. Algunos métodos de JFrame  Para construir una ventana con un título y mostrarla: JFrame theWindow = new JFrame( "Graffiti" ); theWindow.show( ); //idem theWindow.setVisible(true);  Para determinar su tamaño: theWindow.setJMenuBar(cyanMenuBar); theWindow.setSize( 220, 100 );//o mejor theWindow.pack();
  • 43. Nueva funcionalidad de JFrame  setDefaultCloseOperation(int) es la másimportante:  DO_NOTHING_ON_CLOSE  HIDE_ON_CLOSE (default) oculta el frame cuandoel usuario lo cierrapero no se deshace de los recursosdel sistemaasociados (puedovolver a mostrar).  DISPOSE_ON_CLOSE oculta el frame y llama al método dispose(), paraliberarrecursos.  EXIT_ON_CLOSE, cierra la aplicación (System.exit(0))
  • 44. Hello World en Swing importjavax.swing.*; importjava.awt.event.*; publicclassHolaMundo { publicstaticvoidmain(String[] args) { JFrameframe = new JFrame("HolaMundoSwing"); final JLabellabel = new JLabel("Hola Mundo"); frame.getContentPane().add(label); //frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.addWindowListener(new java.awt.event.WindowAdapter(){ publicvoidwindowClosing(WindowEvent e){ System.exit(0); } } ); frame.pack(); frame.setVisible(true); } }
  • 45.
  • 46. Componentes atómicos no editables Tool tip Label Progress Bar
  • 47. Otros componentes atómicos Color Chooser File Chooser Table Text Tree
  • 48. API de los componentes GUI  Componente GUI en Java= class  Propiedades  Métodos  Eventos JButton
  • 49. Componentes GUI 1.- Crear  Instanciar objeto: b = new JButton(“press me”); 2.- Configurar  Propiedades: b.text = “press me”;(evitar en Java)  Métodos: b2 = new JButton("Middlebutton", middleButtonIcon); b2.setVerticalTextPosition(AbstractButton.BOTTOM); b2.setHorizontalTextPosition(AbstractButton.CENTER); b2.setMnemonic(KeyEvent.VK_M); b2.setToolTipText("Thismiddlebuttondoesnothing “ + "whenyouclickit."); 3.- Añadir  panel.add(b); 4.- Manejar eventos
  • 50. Características especiales  Los componentes Swing ofrecen características especiales:
  • 51. Características especiales  Tool tips JButton button = new JButton ("Compute"); button.setToolTipText ("Calculate size.");  Mnemonic button.setMnemonic ("C");  Disable JButton button = new JButton (“Do It”); button.setEnabled (false);
  • 52. import java.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclassUnJBoton { public static void main(String args[]) { Frame f = new Frame(); JButton b = new JButton("Pulsame"); f.add(b); f.pack(); f.setVisible(true); b.addActionListener(new ActionListener() { publicvoidactionPerformed(ActionEvent e) { System.out.println("HOLA"); } }); } }
  • 53. importjavax.swing.*; import java.awt.*; publicclass Botones extendsJButton { publicstaticvoidmain(String[] args) { JFrame f = new JFrame(); Iconicon = new ImageIcon("b1.gif"); Iconiconp = new ImageIcon("b2.gif"); Iconiconr = new ImageIcon("b3.gif"); Iconicond = new ImageIcon("b4.gif"); JButton b1 = new JButton("Pulsame",icon); JButton b2 = new JButton("Pulsame",iconp); JButton b3 = new JButton("Pulsame",iconr); JButton b4 = new JButton("Pulsame",icon); b1.setEnabled(false); b1.setDisabledIcon(icond); b1.setRolloverIcon(iconr); b1.setPressedIcon(iconp); Container c = f.getContentPane(); c.setLayout(new FlowLayout()); c.add(b1); c.add(b2); c.add(b3); c.add(b4); f.pack(); f.setVisible(true); } }
  • 54. Características especiales  Bordes JPanelmyPanel = new JPanel(); Border myBorder = BorderFactory.createEtchedBorder(); myPanel.setBorder(myBorder);  Empty  Titled  Line  Matte  Etched  Compound  Bevel
  • 56. Anatomía de una aplicación GUI JFrame JFrame contenedores JPanel JPanel JButton JButton JLabel JLabel Estructura interna GUI
  • 57. Uso de un componente GUI Crearlo Configurarlo Añadir hijo (si es contenedor) Añadir al padre (si no es JFrame) Manejar los eventos ordenimportante
  • 58. Construcción bottom up  Crear:  Frame  Panel  Componentes  Listener  Añadir (bottom up)  Listeners a los componentes  Componentes al panel  Panel al Frame Listener JButton JLabel JPanel JFrame
  • 60. Window Layout  Cada contenedor maneja la disposición de sus componentes.  El programador sólo añade componentes, el contenedorse encarga de la disposición de los mismos.  El contenedor usa un Layout Manager para manejar la disposición de los componentes en el mismo.  Están disponibles diferentes Layout Managers.  El layout puede ser determinado especificando LayoutManagers para los contenedores.
  • 61. Layout Managers  Hay varios Layout Managers predefinidos en:  FlowLayout (en java.awt)  BorderLayout (en java.awt)  CardLayout (en java.awt)  GridLayout (en java.awt)  GridBagLayout (en java.awt)  BoxLayout (en javax.swing)  OverlayLayout (en javax.swing)
  • 62. Layout Managers (LM)  Cada contenedor tiene un Layout Manager por defecto, aunque se puede establecer otro LM para el mismo, de forma explícita. Para anular el LM por defecto se usa el método setLayout (para contenedores de alto nivel se usa getContentPane().setLayout().  El Layout Manager intenta ajustar la disposición de los componentes en el contenedor cuando se añade un nuevo componente o cuando el contenedor cambia de tamaño.  Puede crear su propio LM.
  • 63. Layout Managers de AWT FlowLayout GridLayout null Left to right, Top to bottom ninguno, programador setea x,y,w,h BorderLayout CardLayout GridBagLayout c One at a time n JButton e w s
  • 64. Null Layout setLayout(null);  El programador es responsable de establecer el tamaño y posición de cada componente (setBounds(x,y,w,h))
  • 66. Combinaciones JButton JButton JFrame n JPanel: BorderLayout c JPanel: FlowLayout JTextArea