SlideShare una empresa de Scribd logo
1 de 19
Interfaz gráfica
de usuario
Ing. Yeimmy Alejandra
Contreras Suarez.
Introduccion
   Hasta ahora hemos desarrollado programas que usan la
    consola para interactuar con el usuario. Esa forma de
    interfaz de usuario es muy simple y nos ha permitido
    centrarnos en todo aquello que tiene que ver tan sólo con
    la programación orientada a objetos con el lenguaje Java,
    sin tener que tratar al mismo tiempo con ventanas,
    botones y otros elementos similares.
   Las interfaces gráficas de usuario (GUI) ofrecen al usuario
    ventanas, cuadros de diálogo, barras de herramientas,
    botones, listas desplegables y muchos otros elementos con
    los que ya estamos muy acostumbrados a tratar. Las
    aplicaciones son conducidas por eventos y se desarrollan
    haciendo uso de las clases que para ello nos ofrece la API
    de Java.
La API de Java para desarrollo
            de GUI
   La interfaz de usuario es la parte del programa que
    permite al usuario interaccionar con él. La API de Java
    proporciona una biblioteca de clases para el desarrollo de
    Interfaces gráficas de usuario (en realidad son dos). La
    biblioteca proporciona un conjunto de herramientas para
    la construcción de interfaces gráficas que tienen una
    apariencia y se comportan de forma semejante en todas
    las plataformas en las que se ejecuten.
   La estructura básica de la biblioteca gira en torno a
    componentes       y   contenedores.       Los  contenedores
    contienen componentes y son componentes a su vez, de
    forma que los eventos pueden tratarse tanto en
    contenedores como en componentes. La API está
    constituida por clases, interfaces y derivaciones.
          AWT y Swing
AWT
Algunos componentes de Swing
Algunos componentes de Swing
Evento
   Un evento se refiere a alguna acción que puede ser
    realizada por el usuario para que el applet realice
    alguna serie de instrucciones. Ente algunos eventos
    dentro de un applet tenemos:
         oprimir en un botón específico
         mover una barra de desplazamiento
         oprimir una tecla específica
   Cuando un applet esta ejecutándose, éste puede
    estar esperando que el usuario active alguna
    secuencia de instrucciones mediante la selección
    de algún elemento de interfaz gráfica definida para
    esto, como lo hemos hecho anteriormente con el
    objeto de la clase Button.
   Cuando creamos un objeto de interfaz gráfica que
    nos servirá para que el usuario indique alguna
    acción, es importante definirle a este objeto que
    será escuchado por la clase específica que se
    encarga de revisar si hay algún evento que ha sido
    realizado.
Escuchadores de eventos
(Listeners)
   Un Escuchador (Listener) es un objeto que es
    notificado cuando un evento ocurre. Este tiene
    dos requerimientos: 1) Debió haber sido registrado
    con una o más fuentes que reciben notificaciones
    sobre tipos de eventos específicos, y 2) Debe
    implementar métodos que reciban y procesen
    éstas notificaciones.
   Los métodos que reciben y procesan estas
    notificaciones están definidos en un grupo de
    interfaces encontradas en java.awt.event. Por
    ejemplo la clase MouseMotionListener define dos
    métodos que reciben notificaciones cuando el
    ratón es arrastrado o movido. Algún objeto
    puede recibir y procesar uno o ambos de estos
    eventos si éste provee una implementación de
    esta interfase.
Eventos de Botón
   Analicemos lo que se hace para manejar
    más de un botón, usemos el applet utilizado
    anteriormente para dar la suma de todos
    los números desde el 1 hasta el N:

   Supongamos que ahora queremos tener un
    botón que limpie los valores de los campos,
    para volver a dar nuevos valores.
   El applet quedaría muy parecido al anterior
    hecho, solo que ahora en el método action
    Performed debemos revisar cual fue el
    botón que se seleccionó, y esto será a
    través de la instrucción de decisión IF, y el
    método getSource() que es tomado de la
    clase ActionEvent, que es el parámetro que
    nos pasa el método actionPerformed.
    Dentro de este parámetro es donde se
    guarda la información sobre cual es el
    elemento gráfico que fue seleccionado.
   Es importante no olvidar que todos las
    clases para poder usar eventos se toman
    utilizando import java.awt.event.*;
El applet quedaría como el siguiente:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

// <applet width="150" height="200" code="AppletEventos1"></applet>
public class AppletEventos1 extends Applet implements ActionListener {
  Label l1, l2;
  TextField t1,t2;
  Button b1,b2;

    public AppletEventos1() {
      l1 = new Label("Numero");
      t1 = new TextField(8);
      l2 = new Label("Suma");
      t2 = new TextField(8);
      b1 = new Button("Suma");
      b2 = new Button("Limpia");
      add(l1);
      add(t1);
      add(b1);
      add(b2);
      add(l2);
      add(t2);
      b1. addActionListener(this);
      b2. addActionListener(this);
    }

    public void actionPerformed(ActionEvent ae) {
      if (ae.getSource() == b1) {
         int n = Integer.parseInt(t1.getText());
         int suma = 0;
         for (int i = 1; i<= n; i++) {
           suma += i;
         }
         t2.setText("" + suma);
      }
      if (ae.getSource() == b2) {
         t1.setText("");
         t2.setText("");
      }
    }
}
import java.awt.*;                                                                                                        Otro EJEMPLO
import java.applet.*;
import java.awt.event.*;

// <applet width="150" height="200" code="AppletCirculos"></applet>
public class AppletCirculos extends Applet implements ActionListener {
  Label l1;
  TextField t1;
  Button b1,b2;
  boolean dibuja = false; // se inicializa dibuja en falso para no dibujar

    public AppletCirculos() {
      l1 = new Label("Circulos");
      t1 = new TextField(8);
      b1 = new Button("Dibuja");
      b2 = new Button("Limpia");
      add(l1);
      add(t1);
      add(b1);
      add(b2);
      b1. addActionListener(this);
      b2. addActionListener(this);
    }

    public void actionPerformed(ActionEvent ae) {
      if (ae.getSource() == b1) {
         dibuja = true;   // si el usuario selecciona dibujar se pone verdadero
      }
      if (ae.getSource() == b2) {
         dibuja = false; // si el usuario selecciona limpiar se pone en falso
      }
      repaint();
    }

    public void paint(Graphics g) {
                         if (dibuja) { // si dibuja es verdadero se dibuja
                                                 g.setColor(Color.red); // se cambia a rojo el color de dibujo
                                                 int circulos = Integer.parseInt(t1.getText()); // se toma el numero del texto
                                                 for (int i = 1; i <= circulos ; i++) { // ciclo de circulos
                                                                                                  int x1 = (int) (Math.random()*100)+60;
                                                                                                  int y1 = (int) (Math.random()*100)+80;
                                                                            g.drawOval(x1,y1, 50, 50); // se dibuja un circulo en
                                                                                                                          // una posición al azar
                                                  }
      }
      else { // si dibuja es falso se limpia el applet
                       g.setColor(Color.white);
                       g.fillRect(0,0,200,200);
      }
    }
}
CLASES DE EVENTOS

 El paquete java.awt.event define varios
  tipos de eventos que son generados por
  varios elementos de interfase de usuario.
  Entre los más comunes eventos utilizados
  están las siguientes clases:

        Clase de Evento   Descripción
       ActionEvent        Generado cuando un botón es seleccionado, una
                          lista (vista mas adelante)tiene un doble clic
                          o un menú es seleccionado


       AdjustmentEvent    Generado cuando un barra de desplazamiento es manipulada
       ComponentEvent     Generado cuando un componente es escondido, movido,
                          cambiado de tamaño, o se hace visible.

       ItemEvent          Generado cuando una caja de chequeo (vista mas adelante)
                          es seleccionada con el ratón.
CLASES DE ESCUCHADORES


 Los escuchadores son creados para
 implementar una o más de las interfases
 definidas por el paquete java.awt.event.
 Cuando un evento ocurre el evento
 fuente invoca el método apropiado
 definido por el escuchador y provee un
 objeto tipo evento como su argumento.
 Entre los más comunes estan:
    Clase de Interfase   Descripción
   ActionListener        Define un método para recibir eventos de acción
                         (ActionEvent)
   AdjustmentListener    Define un método para recibir eventos de deslizadores
                         (AdjustmentEvent)
   ComponentListener     Define cuatro método para reconocer cuando un componente
                         es escondido, movido, cambiado de tamaño o mostrado
                         (ComponentEvent).
   ItemListener          Define un método para reconocer cuando el estado
                         De un campo cambia (ItemEvent).
Eventos de Barra de
                       Desplazamiento



 En estos eventos hacemos uso de barras
 de desplazamiento para realizar alguna
 instrucción o grupo de instrucciones, y
 para esto es importante tomar eventos
 de la clase Scrollbar. Los objetos de la
 clase Srollbar son escuchados a través de
 implementar      una    interfaz  llamada
 AdjustmentListener, la cual utiliza el
 método adjustmentValueChanged, un
 método          muy       parecido       al
 actionPerformed, pero trabaja sobre
 diferentes elementos de interfaz gráfica.
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
// <applet width="150" height="200"
code="AppletEventos2"></applet>
public class AppletEventos2 extends Applet implements
AdjustmentListener {
  Label l;
  Scrollbar s;
  TextField t;

    public AppletEventos2() {
      l = new Label("Valor de la barra de Scroll");
      t = new TextField(3);
      s = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 100);
      add(s);
      add(l);
      add(t);
      s.addAdjustmentListener(this);
    }

    public void adjustmentValueChanged(AdjustmentEvent ae) {
      int valor = s.getValue();
      t.setText(""+valor);
    }
}
Eventos del Ratón

   Para implementar este tipo de eventos debemos
    implementar     la   interfaz MouseListener y
    MouseMotionListener.

   A continuación se muestra un ejemplo de applet que los
    utiliza. Cada vez que el botón es presionado la palabra
    “Abajo” es desplegada en el lugar donde está el
    apuntador del ratón. Cada vez que el ratón es liberado, la
    palabra “Arriba” es mostrada. Si un botón es oprimido el
    mensaje “Ratón oprimido” es desplegado en la esquina
    superior izquierda del área del applet.

   Cada vez que el ratón entra o sale del área del applet, un
    mensaje es desplegado. Cuando el ratón es arrastrado, un
    asterisco es mostrado, el cual es arrastrado con el
    apuntador del ratón. Es importante notar las dos variables
    mouseX y mouseY que guardan los lugares del ratón,
    cuando ocurre uno de los siguientes eventos del ratón:
    presionado, liberado, o arrastrado. Estas coordenadas son
    utilizadas dentro del método paint().
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

// <applet width="150" height="200" code="MouseEvents"></applet>
public class MouseEvents extends Applet implements MouseListener,

                    MouseMotionListener {
 String msg = "";
 int mouseX = 0;
 int mouseY = 0;

  public void init() {
                   addMouseListener(this); // se añade el escuchador del ratón
//a este applet
addMouseMotionListener(this); // se añande el escuchador del movimiento
// del raton a este applet
  }

 // cuando se da un clic en el ratón
 public void mouseClicked(MouseEvent me) {
               mouseX = 0;
               mouseY = 10;
               msg = "Ratón Oprimido";
               repaint();
 }

 // cuando el ratón entra
 public void mouseEntered(MouseEvent me) {
                mouseX = 0;
                mouseY = 10;
                msg = "Ratón Entra";
                repaint();
 }

 // cuando sale el ratón
 public void mouseExited(MouseEvent me) {
                mouseX = 0;
                mouseY = 10;
                msg = "Ratón Sale";
                repaint();
 }
// cuando se presiona el ratón
  public void mousePressed(MouseEvent me) {
              mouseX = me.getX(); // se toma el valor de la coordenada de x
              mouseY = me.getY(); // se toma el valor de la coordenada de y
              msg = "Abajo";
              repaint();
  }

    // cuando se libera el ratón
    public void mouseReleased(MouseEvent me) {
                mouseX = me.getX();
                mouseY = me.getY();
                msg = "Arriba";
                repaint();
    }

    // cuando se arrastra el ratón
    public void mouseDragged(MouseEvent me) {
                mouseX = me.getX();
                mouseY = me.getY();
                msg = "*";
                showStatus("Moviendo el raton en " + mouseX + "," + mouseY);
                repaint();
    }

    // moviendo el ratón
    public void mouseMoved(MouseEvent me) {
                showStatus("Moviendo el raton en " + mouseX + "," + mouseY);
    }

    // desplegando el mensaje en el applet
    public void paint(Graphics g) {
                g.drawString(msg, mouseX, mouseY);
    }
}
Interfaz gráfica de usuario

Más contenido relacionado

La actualidad más candente

Concepto de layout
Concepto de layoutConcepto de layout
Concepto de layoutjbersosa
 
AWT- JAVA
AWT- JAVAAWT- JAVA
AWT- JAVAale8819
 
Confección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGConfección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGJose Benítez Andrades
 
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 unoIng-D-SW-TorresKhano--ME
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3Milaly
 
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
 
Layouts - Java
Layouts - JavaLayouts - Java
Layouts - Javanjca01
 
Control de eventos en gui
Control de eventos en guiControl de eventos en gui
Control de eventos en guijc_lovecraft77
 
Contenedores Swing en Netbeans
Contenedores Swing en NetbeansContenedores Swing en Netbeans
Contenedores Swing en NetbeansMarly Encina
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedoreszeta2015
 
Introducción a Swing
Introducción a SwingIntroducción a Swing
Introducción a Swingmrojas_unitec
 
Plan menus swing
Plan menus swingPlan menus swing
Plan menus swingAlice5253
 
Java - Tutorial Ventanas
Java - Tutorial VentanasJava - Tutorial Ventanas
Java - Tutorial Ventanaselsemieni
 

La actualidad más candente (20)

Prog gui
Prog guiProg gui
Prog gui
 
Swing
SwingSwing
Swing
 
Concepto de layout
Concepto de layoutConcepto de layout
Concepto de layout
 
Programación i
Programación iProgramación i
Programación i
 
AWT- JAVA
AWT- JAVAAWT- JAVA
AWT- JAVA
 
Confección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWINGConfección de interfaces de usuario con JAVA - SWING
Confección de interfaces de usuario con JAVA - SWING
 
Eventos
EventosEventos
Eventos
 
Sesion12-componentes Visuales java
Sesion12-componentes Visuales javaSesion12-componentes Visuales java
Sesion12-componentes Visuales java
 
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
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
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
 
Layouts - Java
Layouts - JavaLayouts - Java
Layouts - Java
 
Control de eventos en gui
Control de eventos en guiControl de eventos en gui
Control de eventos en gui
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Contenedores Swing en Netbeans
Contenedores Swing en NetbeansContenedores Swing en Netbeans
Contenedores Swing en Netbeans
 
Formularios y contenedores
Formularios y contenedoresFormularios y contenedores
Formularios y contenedores
 
Introducción a Swing
Introducción a SwingIntroducción a Swing
Introducción a Swing
 
Plan menus swing
Plan menus swingPlan menus swing
Plan menus swing
 
Java - Tutorial Ventanas
Java - Tutorial VentanasJava - Tutorial Ventanas
Java - Tutorial Ventanas
 
Eventos en Java
Eventos en JavaEventos en Java
Eventos en Java
 

Destacado

Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario ivancmontero
 
Interfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioInterfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioAntonio Albanés
 
Elementos de una interfaz Gráfica
Elementos de una interfaz GráficaElementos de una interfaz Gráfica
Elementos de una interfaz Gráficapantonyerivera
 
elementos tipicos de las interfaces graficas de usuario
elementos tipicos de las interfaces graficas de usuarioelementos tipicos de las interfaces graficas de usuario
elementos tipicos de las interfaces graficas de usuarioantosaavedra35
 
Historia De La Interfaz GráFica
Historia De La Interfaz GráFicaHistoria De La Interfaz GráFica
Historia De La Interfaz GráFicaXimena Tabares
 
Interfaz grafica
Interfaz graficaInterfaz grafica
Interfaz graficaYoleanny
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuarioLuisa Arenas
 
Interfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioInterfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioLucasDanielB
 
Aproximación semio cognitiva a la Interfaz Gráfica de Usuario
Aproximación semio cognitiva a la Interfaz Gráfica de UsuarioAproximación semio cognitiva a la Interfaz Gráfica de Usuario
Aproximación semio cognitiva a la Interfaz Gráfica de UsuarioCarlos Marrero
 
Diseño de interfaz_de_usuario_reload
Diseño de interfaz_de_usuario_reloadDiseño de interfaz_de_usuario_reload
Diseño de interfaz_de_usuario_reloadjonaescalera
 
Diseño interfaze de usuario (carlos chulli quinto sistemas)
Diseño interfaze de usuario (carlos chulli  quinto sistemas)Diseño interfaze de usuario (carlos chulli  quinto sistemas)
Diseño interfaze de usuario (carlos chulli quinto sistemas)Jonathan Chulli
 
Interfaz grafica
Interfaz graficaInterfaz grafica
Interfaz graficaandyzpr
 
polimorfismo
polimorfismopolimorfismo
polimorfismomiguel a
 

Destacado (20)

Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario Elemento tipicos de las interfaces graficas de usuario
Elemento tipicos de las interfaces graficas de usuario
 
Interfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioInterfaz Gráfica de Usuario
Interfaz Gráfica de Usuario
 
Elementos de una interfaz Gráfica
Elementos de una interfaz GráficaElementos de una interfaz Gráfica
Elementos de una interfaz Gráfica
 
elementos tipicos de las interfaces graficas de usuario
elementos tipicos de las interfaces graficas de usuarioelementos tipicos de las interfaces graficas de usuario
elementos tipicos de las interfaces graficas de usuario
 
Historia De La Interfaz GráFica
Historia De La Interfaz GráFicaHistoria De La Interfaz GráFica
Historia De La Interfaz GráFica
 
Interfaz grafica
Interfaz graficaInterfaz grafica
Interfaz grafica
 
Interfaz grafica
Interfaz graficaInterfaz grafica
Interfaz grafica
 
Interfaz gráfica de usuario
Interfaz gráfica de usuarioInterfaz gráfica de usuario
Interfaz gráfica de usuario
 
Interfaz Gráfica de Usuario
Interfaz Gráfica de UsuarioInterfaz Gráfica de Usuario
Interfaz Gráfica de Usuario
 
Aproximación semio cognitiva a la Interfaz Gráfica de Usuario
Aproximación semio cognitiva a la Interfaz Gráfica de UsuarioAproximación semio cognitiva a la Interfaz Gráfica de Usuario
Aproximación semio cognitiva a la Interfaz Gráfica de Usuario
 
Interfaces gráficas de usuario
Interfaces gráficas de usuarioInterfaces gráficas de usuario
Interfaces gráficas de usuario
 
Interfaz gráfica del usuario
Interfaz gráfica del usuarioInterfaz gráfica del usuario
Interfaz gráfica del usuario
 
Interfaz gráfica de usuario (GUI)
Interfaz gráfica de usuario (GUI)Interfaz gráfica de usuario (GUI)
Interfaz gráfica de usuario (GUI)
 
Diseño de interfaz_de_usuario_reload
Diseño de interfaz_de_usuario_reloadDiseño de interfaz_de_usuario_reload
Diseño de interfaz_de_usuario_reload
 
Ergonomía stma h-m
Ergonomía stma h-mErgonomía stma h-m
Ergonomía stma h-m
 
Diseño interfaze de usuario (carlos chulli quinto sistemas)
Diseño interfaze de usuario (carlos chulli  quinto sistemas)Diseño interfaze de usuario (carlos chulli  quinto sistemas)
Diseño interfaze de usuario (carlos chulli quinto sistemas)
 
Interfaz grafica
Interfaz graficaInterfaz grafica
Interfaz grafica
 
Intrefaz gráfica de usuario
Intrefaz gráfica de usuarioIntrefaz gráfica de usuario
Intrefaz gráfica de usuario
 
polimorfismo
polimorfismopolimorfismo
polimorfismo
 
2. Diseño de Interfaces (Intro)
2. Diseño de Interfaces (Intro)2. Diseño de Interfaces (Intro)
2. Diseño de Interfaces (Intro)
 

Similar a Interfaz gráfica de usuario

2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventosCamilo Herreño
 
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 - 4Robert Wolf
 
2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)ElielMauricioEscobar
 
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 awtjbersosa
 
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
 
Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Aristides Miguel Mateo
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Patternripoblet
 
Thalia castro 1101
Thalia castro 1101Thalia castro 1101
Thalia castro 1101thalis96
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosmellcv
 

Similar a Interfaz gráfica de usuario (20)

2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos2 desarrollo interfaz_grafico-capitulo1-02otroseventos
2 desarrollo interfaz_grafico-capitulo1-02otroseventos
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Awt
AwtAwt
Awt
 
Flow layout
Flow layoutFlow layout
Flow layout
 
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
 
Temaswing
TemaswingTemaswing
Temaswing
 
2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)2 interfaces graficas_de_usuario (1)
2 interfaces graficas_de_usuario (1)
 
Swin01
Swin01Swin01
Swin01
 
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
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 
Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.Informe de eventos topicos avanzados de programacion.
Informe de eventos topicos avanzados de programacion.
 
Event Programing & Driven Mediator Pattern
Event Programing & Driven Mediator PatternEvent Programing & Driven Mediator Pattern
Event Programing & Driven Mediator Pattern
 
Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Thalia castro 1101
Thalia castro 1101Thalia castro 1101
Thalia castro 1101
 
Diapos de topicos
Diapos de topicosDiapos de topicos
Diapos de topicos
 
Clase 5 JAVA 2012
Clase 5 JAVA 2012Clase 5 JAVA 2012
Clase 5 JAVA 2012
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
 
Eventos
EventosEventos
Eventos
 
Clase event
Clase eventClase event
Clase event
 

Más de aleja0940

Tabbed pane y excepciones
Tabbed pane y excepcionesTabbed pane y excepciones
Tabbed pane y excepcionesaleja0940
 
Renderización en java
Renderización en javaRenderización en java
Renderización en javaaleja0940
 
Ejemplo Circulo y Cuadrado con Factory
Ejemplo Circulo y Cuadrado con FactoryEjemplo Circulo y Cuadrado con Factory
Ejemplo Circulo y Cuadrado con Factoryaleja0940
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseñoaleja0940
 
Proyecto instalacion red local
Proyecto instalacion red localProyecto instalacion red local
Proyecto instalacion red localaleja0940
 
Metodos en java
Metodos en javaMetodos en java
Metodos en javaaleja0940
 

Más de aleja0940 (7)

Tabbed pane y excepciones
Tabbed pane y excepcionesTabbed pane y excepciones
Tabbed pane y excepciones
 
Renderización en java
Renderización en javaRenderización en java
Renderización en java
 
Java 2 d
Java 2 dJava 2 d
Java 2 d
 
Ejemplo Circulo y Cuadrado con Factory
Ejemplo Circulo y Cuadrado con FactoryEjemplo Circulo y Cuadrado con Factory
Ejemplo Circulo y Cuadrado con Factory
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Proyecto instalacion red local
Proyecto instalacion red localProyecto instalacion red local
Proyecto instalacion red local
 
Metodos en java
Metodos en javaMetodos en java
Metodos en java
 

Interfaz gráfica de usuario

  • 1. Interfaz gráfica de usuario Ing. Yeimmy Alejandra Contreras Suarez.
  • 2. Introduccion  Hasta ahora hemos desarrollado programas que usan la consola para interactuar con el usuario. Esa forma de interfaz de usuario es muy simple y nos ha permitido centrarnos en todo aquello que tiene que ver tan sólo con la programación orientada a objetos con el lenguaje Java, sin tener que tratar al mismo tiempo con ventanas, botones y otros elementos similares.  Las interfaces gráficas de usuario (GUI) ofrecen al usuario ventanas, cuadros de diálogo, barras de herramientas, botones, listas desplegables y muchos otros elementos con los que ya estamos muy acostumbrados a tratar. Las aplicaciones son conducidas por eventos y se desarrollan haciendo uso de las clases que para ello nos ofrece la API de Java.
  • 3. La API de Java para desarrollo de GUI  La interfaz de usuario es la parte del programa que permite al usuario interaccionar con él. La API de Java proporciona una biblioteca de clases para el desarrollo de Interfaces gráficas de usuario (en realidad son dos). La biblioteca proporciona un conjunto de herramientas para la construcción de interfaces gráficas que tienen una apariencia y se comportan de forma semejante en todas las plataformas en las que se ejecuten.  La estructura básica de la biblioteca gira en torno a componentes y contenedores. Los contenedores contienen componentes y son componentes a su vez, de forma que los eventos pueden tratarse tanto en contenedores como en componentes. La API está constituida por clases, interfaces y derivaciones. AWT y Swing
  • 4. AWT
  • 7. Evento  Un evento se refiere a alguna acción que puede ser realizada por el usuario para que el applet realice alguna serie de instrucciones. Ente algunos eventos dentro de un applet tenemos:  oprimir en un botón específico  mover una barra de desplazamiento  oprimir una tecla específica  Cuando un applet esta ejecutándose, éste puede estar esperando que el usuario active alguna secuencia de instrucciones mediante la selección de algún elemento de interfaz gráfica definida para esto, como lo hemos hecho anteriormente con el objeto de la clase Button.  Cuando creamos un objeto de interfaz gráfica que nos servirá para que el usuario indique alguna acción, es importante definirle a este objeto que será escuchado por la clase específica que se encarga de revisar si hay algún evento que ha sido realizado.
  • 8. Escuchadores de eventos (Listeners)  Un Escuchador (Listener) es un objeto que es notificado cuando un evento ocurre. Este tiene dos requerimientos: 1) Debió haber sido registrado con una o más fuentes que reciben notificaciones sobre tipos de eventos específicos, y 2) Debe implementar métodos que reciban y procesen éstas notificaciones.  Los métodos que reciben y procesan estas notificaciones están definidos en un grupo de interfaces encontradas en java.awt.event. Por ejemplo la clase MouseMotionListener define dos métodos que reciben notificaciones cuando el ratón es arrastrado o movido. Algún objeto puede recibir y procesar uno o ambos de estos eventos si éste provee una implementación de esta interfase.
  • 9. Eventos de Botón  Analicemos lo que se hace para manejar más de un botón, usemos el applet utilizado anteriormente para dar la suma de todos los números desde el 1 hasta el N:  Supongamos que ahora queremos tener un botón que limpie los valores de los campos, para volver a dar nuevos valores.  El applet quedaría muy parecido al anterior hecho, solo que ahora en el método action Performed debemos revisar cual fue el botón que se seleccionó, y esto será a través de la instrucción de decisión IF, y el método getSource() que es tomado de la clase ActionEvent, que es el parámetro que nos pasa el método actionPerformed. Dentro de este parámetro es donde se guarda la información sobre cual es el elemento gráfico que fue seleccionado.  Es importante no olvidar que todos las clases para poder usar eventos se toman utilizando import java.awt.event.*;
  • 10. El applet quedaría como el siguiente: import java.awt.*; import java.applet.*; import java.awt.event.*; // <applet width="150" height="200" code="AppletEventos1"></applet> public class AppletEventos1 extends Applet implements ActionListener { Label l1, l2; TextField t1,t2; Button b1,b2; public AppletEventos1() { l1 = new Label("Numero"); t1 = new TextField(8); l2 = new Label("Suma"); t2 = new TextField(8); b1 = new Button("Suma"); b2 = new Button("Limpia"); add(l1); add(t1); add(b1); add(b2); add(l2); add(t2); b1. addActionListener(this); b2. addActionListener(this); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == b1) { int n = Integer.parseInt(t1.getText()); int suma = 0; for (int i = 1; i<= n; i++) { suma += i; } t2.setText("" + suma); } if (ae.getSource() == b2) { t1.setText(""); t2.setText(""); } } }
  • 11. import java.awt.*; Otro EJEMPLO import java.applet.*; import java.awt.event.*; // <applet width="150" height="200" code="AppletCirculos"></applet> public class AppletCirculos extends Applet implements ActionListener { Label l1; TextField t1; Button b1,b2; boolean dibuja = false; // se inicializa dibuja en falso para no dibujar public AppletCirculos() { l1 = new Label("Circulos"); t1 = new TextField(8); b1 = new Button("Dibuja"); b2 = new Button("Limpia"); add(l1); add(t1); add(b1); add(b2); b1. addActionListener(this); b2. addActionListener(this); } public void actionPerformed(ActionEvent ae) { if (ae.getSource() == b1) { dibuja = true; // si el usuario selecciona dibujar se pone verdadero } if (ae.getSource() == b2) { dibuja = false; // si el usuario selecciona limpiar se pone en falso } repaint(); } public void paint(Graphics g) { if (dibuja) { // si dibuja es verdadero se dibuja g.setColor(Color.red); // se cambia a rojo el color de dibujo int circulos = Integer.parseInt(t1.getText()); // se toma el numero del texto for (int i = 1; i <= circulos ; i++) { // ciclo de circulos int x1 = (int) (Math.random()*100)+60; int y1 = (int) (Math.random()*100)+80; g.drawOval(x1,y1, 50, 50); // se dibuja un circulo en // una posición al azar } } else { // si dibuja es falso se limpia el applet g.setColor(Color.white); g.fillRect(0,0,200,200); } } }
  • 12. CLASES DE EVENTOS  El paquete java.awt.event define varios tipos de eventos que son generados por varios elementos de interfase de usuario. Entre los más comunes eventos utilizados están las siguientes clases: Clase de Evento Descripción ActionEvent Generado cuando un botón es seleccionado, una lista (vista mas adelante)tiene un doble clic o un menú es seleccionado AdjustmentEvent Generado cuando un barra de desplazamiento es manipulada ComponentEvent Generado cuando un componente es escondido, movido, cambiado de tamaño, o se hace visible. ItemEvent Generado cuando una caja de chequeo (vista mas adelante) es seleccionada con el ratón.
  • 13. CLASES DE ESCUCHADORES  Los escuchadores son creados para implementar una o más de las interfases definidas por el paquete java.awt.event. Cuando un evento ocurre el evento fuente invoca el método apropiado definido por el escuchador y provee un objeto tipo evento como su argumento. Entre los más comunes estan: Clase de Interfase Descripción ActionListener Define un método para recibir eventos de acción (ActionEvent) AdjustmentListener Define un método para recibir eventos de deslizadores (AdjustmentEvent) ComponentListener Define cuatro método para reconocer cuando un componente es escondido, movido, cambiado de tamaño o mostrado (ComponentEvent). ItemListener Define un método para reconocer cuando el estado De un campo cambia (ItemEvent).
  • 14. Eventos de Barra de Desplazamiento  En estos eventos hacemos uso de barras de desplazamiento para realizar alguna instrucción o grupo de instrucciones, y para esto es importante tomar eventos de la clase Scrollbar. Los objetos de la clase Srollbar son escuchados a través de implementar una interfaz llamada AdjustmentListener, la cual utiliza el método adjustmentValueChanged, un método muy parecido al actionPerformed, pero trabaja sobre diferentes elementos de interfaz gráfica.
  • 15. import java.awt.*; import java.applet.*; import java.awt.event.*; // <applet width="150" height="200" code="AppletEventos2"></applet> public class AppletEventos2 extends Applet implements AdjustmentListener { Label l; Scrollbar s; TextField t; public AppletEventos2() { l = new Label("Valor de la barra de Scroll"); t = new TextField(3); s = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 100); add(s); add(l); add(t); s.addAdjustmentListener(this); } public void adjustmentValueChanged(AdjustmentEvent ae) { int valor = s.getValue(); t.setText(""+valor); } }
  • 16. Eventos del Ratón  Para implementar este tipo de eventos debemos implementar la interfaz MouseListener y MouseMotionListener.   A continuación se muestra un ejemplo de applet que los utiliza. Cada vez que el botón es presionado la palabra “Abajo” es desplegada en el lugar donde está el apuntador del ratón. Cada vez que el ratón es liberado, la palabra “Arriba” es mostrada. Si un botón es oprimido el mensaje “Ratón oprimido” es desplegado en la esquina superior izquierda del área del applet.  Cada vez que el ratón entra o sale del área del applet, un mensaje es desplegado. Cuando el ratón es arrastrado, un asterisco es mostrado, el cual es arrastrado con el apuntador del ratón. Es importante notar las dos variables mouseX y mouseY que guardan los lugares del ratón, cuando ocurre uno de los siguientes eventos del ratón: presionado, liberado, o arrastrado. Estas coordenadas son utilizadas dentro del método paint().
  • 17. import java.awt.*; import java.applet.*; import java.awt.event.*; // <applet width="150" height="200" code="MouseEvents"></applet> public class MouseEvents extends Applet implements MouseListener, MouseMotionListener { String msg = ""; int mouseX = 0; int mouseY = 0; public void init() { addMouseListener(this); // se añade el escuchador del ratón //a este applet addMouseMotionListener(this); // se añande el escuchador del movimiento // del raton a este applet } // cuando se da un clic en el ratón public void mouseClicked(MouseEvent me) { mouseX = 0; mouseY = 10; msg = "Ratón Oprimido"; repaint(); } // cuando el ratón entra public void mouseEntered(MouseEvent me) { mouseX = 0; mouseY = 10; msg = "Ratón Entra"; repaint(); } // cuando sale el ratón public void mouseExited(MouseEvent me) { mouseX = 0; mouseY = 10; msg = "Ratón Sale"; repaint(); }
  • 18. // cuando se presiona el ratón public void mousePressed(MouseEvent me) { mouseX = me.getX(); // se toma el valor de la coordenada de x mouseY = me.getY(); // se toma el valor de la coordenada de y msg = "Abajo"; repaint(); } // cuando se libera el ratón public void mouseReleased(MouseEvent me) { mouseX = me.getX(); mouseY = me.getY(); msg = "Arriba"; repaint(); } // cuando se arrastra el ratón public void mouseDragged(MouseEvent me) { mouseX = me.getX(); mouseY = me.getY(); msg = "*"; showStatus("Moviendo el raton en " + mouseX + "," + mouseY); repaint(); } // moviendo el ratón public void mouseMoved(MouseEvent me) { showStatus("Moviendo el raton en " + mouseX + "," + mouseY); } // desplegando el mensaje en el applet public void paint(Graphics g) { g.drawString(msg, mouseX, mouseY); } }