SlideShare una empresa de Scribd logo
AWT

Introducción
Componentes y contenedores
Elementos Básicos
Administradores de diseño
Ventanas
Manejo de eventos
Tipos y auditores de evento
Línea de Trabajo
Bibliografía


                              1
Introducción

  AWT = Abstract Window Toolkit
    (Juego de Herramientas de Ventanas Abstracto)
  Permite el desarrollo de interfaces gráficas de
  usuario rápida y fácilmente.
  Contiene una mezcla de los componentes GUI
  más simples.
  La mayoría de sus clases e interfaces se pueden
  usar en:
    applets
    aplicaciones
  El paquete básico es java.awt.*


                                                    2
Componentes y Contenedores

 Component: es la superclase del conjunto
 de clases del AWT.
 Container: se usa para definir
 componentes que pueden contener a
 otros componentes.

     java.lang.Object
       |
       +--java.awt.Component
            |
            +--java.awt.Container

                                        3
Componentes y Contenedores

Component: incluye métodos para trabajar con
  manipuladores de eventos
  imágenes
  fuentes
  colores
Container: ofrece métodos para manipular los
componentes
  añadir
  recuperar
  mostrar
  contar
  eliminar
  trabajar con administradores de diseño


                                               4
La Primera   import java.awt.*;
             import java.awt.event.*;
Ventana      class Ventana extends Frame{
               public Ventana(){
                 super ("Ejemplo de Ventana");
                 inicializacionComponentes();
                 addWindowListener(new AdaptadorVentana());
                     setSize(300,200);
                     setVisible(true);
               }
               private void inicializacionComponentes(){
                  // Establecer Gestor de Posicionamiento
                  //Crear Componentes Gráficos
                  // Añadir al contenedor
               }
             public static void main(String arg[]){
                Ventana f = new Ventana();
               }
                 private class AdaptadorVentana extends WindowAdapter{
                     public void windowClosing(WindowEvent e){
                       System.exit(1);
                     }
                 }
             }
                                                                         5
Elementos Básicos: Botones

 Button (Botón)

    Se utilizan para ejecutar alguna acción
    asociada cuando el usuario lo pulsa.
    Dos constructores:
     • Button()
     • Button(String label)


 Ejemplo:
         Button boton=new Button(“Aceptar”);


                                               6
Elementos Básicos: Label

  Label (Etiqueta)
     Se utilizan para escribir cadenas de caracteres
     alineadas dentro de los limites del objeto de
     este tipo.
     Tres constructores:
      • Label()
      • Label(String label)
      • Label(String label, int aligment)

  Ejemplo:

 Label etiqueta=new Label(“Bienvenido”,Label.CENTER);


                                                        7
Elementos Básicos: Checkbox

Checkbox (Casilla de verificación)

  Representa una casilla de verificación a seleccionar.
  Para comprobar el estado
   • getState
  Para establecer el estado
   • setState
  Se pueden asociar en grupos dentro de un elemento
  CheckboxGroup
Ejemplo:
Checkbox check=new Checkbox(“One”,grupoCheck, true);

   • Nota: grupoCheck es una instancia de un objeto
     CheckboxGroup
                                                          8
Elementos Básicos: CheckboxGroup

CheckboxGroup (Agrupación de Casilla de
verificación)
  Agrupa un conjunto de checkbox de manera
  que sólo se puede seleccionar uno de ellos.
  Para comprobar la casilla activa
   • getSelectedCheckBox
  Para establecer la casilla activa
   • setSelectedCheckBox

Ejemplo:    CheckboxGroup cbg = new CheckboxGroup();
            add(new Checkbox("one", cbg, true));
            add(new Checkbox("two", cbg, false));
            add(new Checkbox("three", cbg, false));

                                                       9
Elementos Básicos: Choice

Choice (Selección)
  Seleccionar una opción de entre varias visualizando solo
  una de ellas.
  Para añadir elementos: addItem
  Para contar los elementos: countItems
  Para seleccionar un elemento: select
  Para obtener el elemento asignado: getSelectedItem
  Para establecer el índice del elemento asignado:
  getSelectedIndex

Ejemplo:       Choice colorChooser = new Choice();
               colorChooser.add("Green");
               colorChooser.add("Red");
               colorChooser.add("Blue");

                                                             10
Elementos Básicos: TextField

TextField (Campos de texto)



  Implementa una zona de entrada de texto en
  una sola línea.
  Para cambiar el texto setText
  Para obtener el texto getText
Ejemplo:
            TextField   tf1, tf2, tf3, tf4;
            tf1 = new   TextField();
            tf2 = new   TextField("", 20);
            tf3 = new   TextField("Hello!");
            tf4 = new   TextField("Hello", 30);
                                                  11
Elementos Básicos: TextArea

TextArea (Campos de área de texto)



  Implementa una zona de entrada de varias
  líneas de texto.Incluye su propia barra de
  desplazamiento.
  Para cambiar el texto disponemos de métodos:
  appendText, insertText y replaceText.
  Para obtener el texto getText.
Ejemplo:
              new TextArea("Hello", 5, 40);

                                                 12
Elementos Básicos: Scrollbar

  Scrollbar (Barra de desplazamiento)



     Permiten seleccionar un valor entre un mínimo
     y un máximo determinado.
     Disponemos de los métodos: getValue,
     setValue, getMinimum y getMaximum.


  Ejemplo:
ranger = new Scrollbar(Scrollbar.HORIZONTAL, 0, 60, 0, 300);
add(ranger);
                                                          13
Administradores de diseño: Descendientes
de Container

Panel
  Es un contenedor genérico que se puede mostrar dentro
  de applets y aplicaciones.
ScrollPane
  Es un contenedor desplazable que puede tener barras de
  desplazamiento verticales y horizontales.
Window
  Ofrece unas subclases para las ventanas principales de
  aplicación, objetos Frame y ventanas Dialog.

   • Estas tres clases cumplen la función de hospedar a los
     componentes ya vistos pudiendo tener asociado un gestor
     de organización (LayoutManager).


                                                               14
Administradores de diseño: Container

Cada Container tiene asociado un administrador
de diseño que establece la forma de colocar los
componentes dentro de un Container.
El administrador de diseño debe implementar la
interfaz LayoutManager.
  La interfaz LayoutManager2 amplia sus funciones.
Para establecer el LayoutManager se usa el
método setLayoutManager del Container.
Existen varios administradores de diseño:
  FlowLayout
  BorderLayout
  GridLayout
  GridBagLayout
  CardLayout
                                                     15
Administradores de diseño: Container

Como trabajar con Paneles
  Creación del panel
   • Panel p = new Panel ();
  Añadir un administrador de diseño al panel
   • p.setLayout(new FlowLayout());
  Añadir los componentes al panel
   • Label b = new Label(“Dentro del panel”);
   • p.add(b);
  Si no es un root Panel se añade al panel principal como
  un componente mas
   • frame.add(p);
Comentarios
  Todas las ventanas (dialogo - principales) y applet tienen
  asociado un panel inicial
  Cuando el GUI es complicado los paneles se modelan en
  clases independientes extendiendo de la clase Panel
                                                            16
Administradores de diseño: Container

   Ejemplo

//Creación de variables de instancia
  private Label label1;
  private Panel p;
...
//Creación de un container
    p = new Panel();
//Establecer administradores de diseño para los contenedores
   this.setLayout(new FlowLayout());
   p.setLayout(new FlowLayout());
//Creación de componentes
   label1 = new Label("Dentro de un Panel");
//Añadir componentes a los contenedores
   p.add(label1);
   this.add(p);
                                                          17
Administradores de diseño: FlowLayout

     Se colocan los elementos desde la esquina superior
     izquierda, de izquierda a derecha y de arriba a abajo.
     La separación entre componentes puede indicarse en el
     constructor.
  (Redimensionar la ventana para observar la recolocación de los componentes)




//Creación de variables de instancia
//this es la autoreferencia de un objeto Frame
this.setLayout(new FlowLayout());
this.add(new Button("Boton 1"));
this.add(new Button("Boton 2"));
this.add(new Button("Boton 3"));
this.add(new Button("Nombre Largo Boton 4"));
this.add(new Button("5"));                                                  18
Administradores de diseño: BorderLayout

       Se colocan los elementos siguiendo una distribución en
       zonas: arriba, abajo, izquierda, derecha y centro.
       Los elementos de los extremos ocupan el espacio que les
       sea necesario. El central ocupa todo el que quede
       disponible.

// Asignacion del administrador de diseño
//this es la autoreferencia de un objeto Frame
 this.setLayout(new BorderLayout());
// Añadir componentes al panel
 Button button = new Button("Boton 1 (PAGE_START)");
 this.add(button, BorderLayout.PAGE_START);

 button = new Button("Boton 2 (CENTER)");
 this.add(button, BorderLayout.CENTER);
 button = new Button("Boton 3 (LINE_START)");
 this.add(button, BorderLayout.LINE_START);
 button = new Button("Boton 4 (PAGE_END)");
 this.add(button, BorderLayout.PAGE_END);
 button = new Button("Boton 5 (LINE_END)");
 this.add(button, BorderLayout.LINE_END);                        19
Administradores de diseño: GridLayout

      Se organizan los elementos por cuadriculas. Todos los
      elementos tienen el mismo tamaño.
      El constructor se usa para determinar el número de
      cuadrículas.
      Se puede indicar huecos entre las Cuadriculas
      Constructores
         GridLayout(int filas, int colums)
         GridLayout(int filas, int colums, int xhueco, int yhueco)


/ Asignación del administrador de diseño
/this es la autoreferencia de un objeto Frame
his.setLayout(new GridLayout(3,2,2,2));
/ Añadir componente al panel
utton button;
or (int i=1;i<=6;i++){
 button= new Button("Boton " + i);
 this.add(button);
                                                                     20
Administradores de diseño: GridBagLayout

Se organizan los elementos por
cuadrículas. Los elementos pueden ocupar
más de una fila o columna.
Usa la clase GridBagConstraints. Se usa
para identificar los parámetros de
posicionamiento de un componente.




                                           21
Administradores de diseño: CardLayout

Solo se ve uno de sus componentes en cada
momento.
Sirve como base para tener varias ventanas una
debajo de otra.
Se puede asignar a cualquier contenedor
Son especialmente útiles con contenedores del
tipo JTabbedPane


                      Capa 1
                       Capa 2
                         Capa 3


                                                 22
Administradores de diseño: Nulo

          Se permite trabajar sin administradores de diseño
          Se indica la posición absoluta de cada componente en el
          contenedor con el método setBounds.
              setBounds(int x,int y,int anchura,int altura)


/ Asignacion del administrador de diseño nulo
/this es la autoreferencia de un objeto Frame
his.setLayout(null);
utton boton1 = new Button("Boton 1");
oton1.setBounds(30,30,200,100);
his.add(boton1);

utton boton2 = new Button("Boton 2");
oton2.setBounds(200,100,100,100);
his.add(boton2);


                                                                    23
Ventanas

Para el trabajo con ventanas tenemos:
  Window: ventana de alto nivel sin bordes ni barra de
  menús.
  Frame: subclase de Window
  Dialog: subclase de Window
Frame: subclase de Window.
  tiene una barra de título, esquinas para cambiar de
  tamaño y una barra de menú.
  Puede ser la ventana principal o secundaria.
  setVisible(boolean)para mostrar y esconder el Frame.
  setMenuBar cambia la barra de menú.
  setTitle cambia el título de la ventana.
Dialog
  ventana de dialogo asociada a una ventana de nivel
  superior
                                                         24
Manejo de Eventos:IntroducciónI

El usuario se comunica con los programas de ventana
ejecutando acciones sobre los componentes gráficos.
   Estas acciones tienen como resultado la generación de eventos.
Los programas de ventanas son “conducidos por eventos”.

El JDK 1.0.2 admitía un enfoque “modelo heredado”.
   Se devuelve true o false si el componente gestiona el tipo de
   evento. Si no se gestiona se envía al contenedor del objeto, así
   sucesivamente.


El JDK 1.1 introduce el enfoque “delegación de eventos”.
   Entrega los eventos a objetos específicos.
   Menos complejo y más eficaz.



                                                                      25
Manejo de Eventos: IntroducciónII

La clase java.util.EventObject es la clase de
nivel superior de la jerarquía de eventos.
Esta clase ofrece:
    Una variable source, origen del evento.
    Un método getSource() recupera el objeto fuente del
    evento.
    Un solo constructor que toma como argumento el objeto
    origen del evento.
La clase java.awt.AWTEvent hereda de la clase
java.util.EventObject para admitir los eventos de
AWT.
Recoger evento                               Procesar evento
                   Registra auditor
    Componente       addXXXListener()      Listener
                                                           26
Manejo de Eventos: Introducción                         III


Asociación/registro de auditores/oyentes/listener
    Cada componente puede tener asociado varios tipos de
    auditores a través de una interface.
    Ej: A un botón se le puede asociar un oyente que
    implemente la interface java.awt.event.ActionListener
     ...
     b = new Button("Boton");
     b.addActionListener(new Oyente()); // Registrar auditor
     ...
     class Oyente implements ActionListener{
         public void actionPerformed(ActionEvent e){
           ...
         }
     }


Recoger evento                                           Procesar evento
                        Registra auditor
    Componente            addActionListener()         Listener
                          Envía evento                                 27
Manejo de Eventos: Introducción                         IV

                        class Ventana extends Frame{
                          private Button b;
Ejemplo:
  Se tiene un botón       public Ventana(){
  con un oyente              super ("Ejemplo de Ventana");
                             inicializacionComponentes();
  asociado                   setSize(300,200);
  El oyente audita al        setVisible(true);
  componente y            }
  realiza                 private void inicializacionComponentes(){
  operaciones en               setLayout(new FlowLayout());
                               b = new Button("Boton");
  función de los               b.addActionListener(new Oyente());
  eventos recibidos            add(b);
  por el botón.            }
  En el ejemplo el        public static void main(String arg[]){
                           Ventana f = new Ventana();
  oyente cambia el        }
  color del botón         private class Oyente implements
  cuando éste es                   ActionListener{
  pulsado.                   public void actionPerformed(ActionEvent e){
                                Button baux=(Button) e.getSource();
                                baux.setBackground(Color.RED);
                             }
                          }
                        }                                               28
Manejo de Eventos: Introducción              V



Ejercicio:
     Realizar una Ventana con un Button
     El oyente que audita al botón cambiará alternativamente
     los colores de un objeto cuando éste es pulsado (azul –
     rojo)




                                                           29
Manejo de Eventos: Consideraciones de
diseño I

 Implementación de oyentes
    Implementación de interface
     • Ventaja tiene acceso a la parte privada de la clase

class Ventana extends Frame implements ActionListener{
  private Button b;
  ...
  b.addActionListener(this);
  ...
  //Método de la interface ActionListener
   public void actionPerformed(ActionEvent e){
     Button baux=(Button) e.getSource();
     baux.setBackground(Color.RED);
   }

}//Fin class Ventana

                                                             30
Manejo de Eventos: Consideraciones de
  diseño II

   Implementación de oyentes
      Clases internas (inner)
       • Ventajas tiene acceso a la parte privada de la clase que la
         contiene (outer) y mantiene un encapsulamiento del
         oyente dentro de la clase
class Ventana extends Frame{
  private Button b;
  ...
  b.addActionListener(new Oyente());
  ...
  //Clase interna tiene acceso a la parte privada de Ventana
  private class Oyente implements ActionListener{
    public void actionPerformed(ActionEvent e){
      Button baux=(Button) e.getSource();
      baux.setBackground(Color.RED);
    }
  }//Fin class Oyente
}//Fin class Ventana                                               31
Manejo de Eventos: Consideraciones de
diseño III

 Implementación de oyentes
    Clases externas
     • El oyente se asocia igual que con clases internas
     • La clase Auditor (class Oyente) no puede acceder a la zona
       privada de la clase que le contiene (class Ventana)
    Clases anónimas

class Ventana extends Frame{
  private Button b;
  ...
  b.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
      Button baux=(Button) e.getSource();
      baux.setBackground(Color.RED);
    });//Fin class anónima
}//Fin class Ventana

                                                                32
Manejo de Eventos: Consideraciones de
diseño IV

Asociación de oyentes
  Posibilidades de asociación
   • “n” oyentes a “1” componente
                                    Oye nte 1

                                    Oye nte 2    Co mpon ente

                                    Oye nte 3


   • “1” oyente a “n” componentes               Componente 1


                                     Oyente     Componente 2


                                                Componente n


   • “1” oyente a “1” componente
                                    Oyente       Compon ente

                                                                33
Manejo de Eventos: Consideraciones de
     diseño V

      Asociación de oyentes
b1 = new Button("Boton dos listener");
b2 = new Button("Boton un listener");
t1 = new TextField(10);
//Asociación n a 1
b1.addActionListener(new Oyente1());
b1.addActionListener(new Oyente2());
//Asociación 1 a n
b2.addActionListener(new Oyente1());

private class Oyente1 implements ActionListener{
  public void actionPerformed(ActionEvent e){
    Button baux=(Button) e.getSource();
    baux.setBackground(Color.RED);
  }
}//Oyente1
private class Oyente2 implements ActionListener{
  public void actionPerformed(ActionEvent e){
    t1.setText("Boton pulsado");
   }
                                                   34
Tipos y auditores de evento                I



Tipos de eventos (heredan de java.awt.AWTEvent)

     Eventos                       Descripción

ActionEvent        Pulsación de botones o la selección de
                   elementos de menú.
AdjustmenEvent     Acciones de desplazamiento.
ComponentEvent     Cambios en la posición, foco o tamaño de un
                   componente de ventana, o una entrada de
                   teclado u otra acción del ratón.
InputMethodEvent   Cambios en el texto que se introducen a
                   través de un método de entrada.
ItemEvent          Cambios en el estado de un componente
                   como la selección de un elemento de la lista.
TextEvent          Cambios en los textos

                                                               35
Tipos y auditores de evento               II



Tipos de eventos (heredan de java.awt.AWTEvent)


    Eventos                        Descripción
FocusEvent        Cambios en el estado de un foco de entrada de
                  un componente.
InputEvent        Se clasifican en KeyEvent y MouseEvent para
                  cubrir los eventos que generan las acciones del
                  teclado y los eventos de bajo nivel del ratón.
ContainertEvent   eventos asociados a la suma y eliminación de
                  los componentes de un contenedor.
PaintEvent        Se genera el dibujo/redibujo de una ventana.
WindowEvent       la generan eventos como la apertura, cierre y
                  minimización de una ventana.

                                                                  36
Tipos y auditores de evento             III



  Las clases AWTEvent y sus subclases dirigen los eventos
  hacía los objetos registrados como oyentes.
  Los oyentes (auditores) implementan la interfaz
  java.util.EventListener (no define constantes ni métodos).
  Tipos de auditores (heredan java.awt.event.EventListener )

        Auditores               Eventos asociados
  ActionListener          ActionEvent
  AdjustmentListener      AdjustmenEvent
  ComponentListener       ComponentEvent
  ContainerListener       ContainerEvent
  FocusListener           FocusEvent
  InputMethodListener     InputMethodEvent
                                                         37
Tipos y auditores de evento          IV



Tipos de auditores (heredan java.awt.event.EventListener


        Auditores            Eventos asociados
   ItemListener         ItemEvent
   KeyListener          KeyEvent
   MouseListener        MouseEvent
   MouseMotionListener MouseEvent
   TextListener         TextEvent
   WindowListener       WindowEvent




                                                      38
Tipos y auditores de evento              V


Clases adaptadoras
    Por comodidad se ofrecen clases adaptadoras que
    implementan las interfaces de audición de eventos.
    Se pueden utilizar para pasar por alto métodos
    específicos de manejo de eventos.
          Auditores       Clases adaptadoras que implementan el
                                         auditor

ComponentListener        ComponentAdapter
ContainerListener        ContainerAdapter
FocusListener            FocusAdapter
KeyListener              KeyAdapter
MouseListener            MouseAdapter

MouseMotionListener      MouseMotionAdapter

WindowListener           WindowAdapter                            39
Tipos y auditores de evento               VI


Relación componentes awt/swing y auditores
  Los componentes awt/swing descienden de
  awt.Component
  Se puede asignar los siguientes Listener
   •   component listener
   •   focus listener
   •   key listener
   •   mouse listener
   •   mouse-motion listener
   •   mouse-wheel listener (introducido en 1.4)
  Dependiendo del tipo de componente podrá tener
  además otros listener asociados



                                                   40
Tipos y auditores de evento                                 VII


Relación componentes awt y auditores




                                            able edit
                                            document,undo




                                                                         window
                                   change
                  action


                           caret




                                                                  item
    Componentes



   button         X                X                              X
   check box      X                X                              X
   radio button   X                X                              X
   text area                X                  X
   text field     X         X                  X
   Frame                                                                 X

                                                                                  41
Línea de Trabajo

JFC = Java Foundation Classes
Agrupa a AWT y lo amplia con nuevas APIs como
  Swing
  Java 2D, Java 3D
  Drag-and-Drop
  Accessibility
Swing es parte de JFC ... aunque con distintas
características que AWT.
Permiten elaborar interfaces gráficas más
potentes.
  http://java.sun.com/docs/books/tutorial/uiswing/compon
  ents/components.html
Desventajas:
  complejidad de manejo
  problema en el soporte por parte de los navegadores.   42
Bibliografía

  [Jaworski 1999] Jaworski, J. (1999). Java 1.2 Al
  Descubierto.. Prentice Hall.
     Capítulo 6, Construcción de GUI.

  [Walrath et al., 2004] Walrath,K., Campione,M., Huml A.,
  Zakhour S., (2004). The JFC Swing Tutorial: A Guide to
  Constructing GUIs, Second Edition. Addison-Wesley .
      • Disponible en formato electrónico en inglés
      • http://java.sun.com/docs/books/

  [Horstmann et al., 2003] Horstmann, G.S., Cornell, G.
  (2003) Java 2. Fundamentos. Volumen 1. Prentice Hall


  Java2 SDK, Standard Edition Documentation

                                                          43

Más contenido relacionado

PDF
Curso java 6
PPTX
Interfaz gráfica de usuario
PPSX
Librería swing java
PDF
Java
PDF
Swing
 
DOCX
Concepto de layout
PDF
Programacion en JAVA 2
PPSX
Graficas matlab
Curso java 6
Interfaz gráfica de usuario
Librería swing java
Java
Swing
 
Concepto de layout
Programacion en JAVA 2
Graficas matlab

La actualidad más candente (17)

DOCX
PPT
Funciones store proc_triggers
PPTX
Gui interfaz gráfica de usuario javax.swing y java.awt
DOCX
Manual de usuario
PPTX
Tutorial para-eclipse
PDF
Funciones store proc_triggers
PPTX
Presentación interfaz gráfica_matlab
PPTX
Evelin moreno panel de control
DOCX
Proyecto sencillo con gui
PPSX
DOCX
Plan menus swing
PPT
2da clase moviles_jme_alert_form_text_field_so_uch
PDF
PDF
Guia practica funciones en java con NetBeans
DOCX
Informe#25
PPTX
Tutorial para-eclipse
Funciones store proc_triggers
Gui interfaz gráfica de usuario javax.swing y java.awt
Manual de usuario
Tutorial para-eclipse
Funciones store proc_triggers
Presentación interfaz gráfica_matlab
Evelin moreno panel de control
Proyecto sencillo con gui
Plan menus swing
2da clase moviles_jme_alert_form_text_field_so_uch
Guia practica funciones en java con NetBeans
Informe#25
Tutorial para-eclipse
Publicidad

Destacado (20)

PPTX
Java Awt
PDF
Marcado CE Puertas Ventanas
PPTX
Interfaces de usuario con awt
ODP
Awt vs java swing
PDF
Sesion12-Componentes AWT
PPTX
Diapositivas sobre AWT
PPTX
Puertas y-ventanas-en-madera
PDF
Java AWT
PDF
Ventanas madera 2
PPTX
PPT
AWT- JAVA
ODP
Diferencias swing y awt
PPT
Diapositivas sesion puertas
PPT
Java awt
PPT
Swing and AWT in java
PDF
java swing tutorial for beginners(java programming tutorials)
PPTX
JAVA AWT
PPTX
TIPOS DE PUERTAS
PPT
Curso Java Inicial 8 Conceptos Avanzados Awt
PPT
21 puertas y ventanas
Java Awt
Marcado CE Puertas Ventanas
Interfaces de usuario con awt
Awt vs java swing
Sesion12-Componentes AWT
Diapositivas sobre AWT
Puertas y-ventanas-en-madera
Java AWT
Ventanas madera 2
AWT- JAVA
Diferencias swing y awt
Diapositivas sesion puertas
Java awt
Swing and AWT in java
java swing tutorial for beginners(java programming tutorials)
JAVA AWT
TIPOS DE PUERTAS
Curso Java Inicial 8 Conceptos Avanzados Awt
21 puertas y ventanas
Publicidad

Similar a Vbr Awt 01 (20)

PPTX
Swing intefaz grafica de usuario
PPT
Entorno grafico en Java
PPT
Entorno gráfico en Java
PPT
abstract window tool kit
DOCX
Layout
DOCX
Layout
PDF
Labo 2
PDF
manual visual_studio_2010_
PPTX
PPT
Visual Basic 6.0
PPTX
10 Herramientas Visual Basic
PPT
Programación III (Java) - 06 Ventanas
PDF
Visual Basic 6.0
PPSX
PPT
Clase 5 JAVA 2012
PPT
Trabajando con controles en Phyton introduccion
DOCX
Controles swing listas
PPTX
Presentación de visual studio (1)
PDF
Java tema06a
Swing intefaz grafica de usuario
Entorno grafico en Java
Entorno gráfico en Java
abstract window tool kit
Layout
Layout
Labo 2
manual visual_studio_2010_
Visual Basic 6.0
10 Herramientas Visual Basic
Programación III (Java) - 06 Ventanas
Visual Basic 6.0
Clase 5 JAVA 2012
Trabajando con controles en Phyton introduccion
Controles swing listas
Presentación de visual studio (1)
Java tema06a

Más de Carlos Luna (20)

PPT
Semana9 Vbr
PPT
Semana9b Vbr
PDF
Curso Basico Java
PDF
PPTX
Teoria De La Relatividad 20091
PPT
Teoria De La Relatividad 2009
PPT
Teoria De La Relatividad 2009
PDF
2007 I
DOC
Calentamiento Fisica
PPT
Universo Fisica http://fisicamoderna9.blogspot.com/
PPT
Rayos X y su Espectroscopia http://fisicamoderna9.blogspot.com/
PPT
Medios Fisicos http://fisicamoderna9.blogspot.com/
PPT
Particulas Fundamentales http://fisicamoderna9.blogspot.com/
PPT
Microscopio Electronico De Barrido Meb http://fisicamoderna9.blogspot.com/
PPT
Fabricacion De Chips http://fisicamoderna9.blogspot.com/
PPT
Efecto Fotoelectrico http://fisicamoderna9.blogspot.com/
PPT
Fisica Atómica http://fisicamoderna9.blogspot.com/
PDF
Energía Relativista http://fisicamoderna9.blogspot.com/
PPT
Einstein
PPT
Criptografía Cuántica http://fisicamoderna9.blogspot.com/
Semana9 Vbr
Semana9b Vbr
Curso Basico Java
Teoria De La Relatividad 20091
Teoria De La Relatividad 2009
Teoria De La Relatividad 2009
2007 I
Calentamiento Fisica
Universo Fisica http://fisicamoderna9.blogspot.com/
Rayos X y su Espectroscopia http://fisicamoderna9.blogspot.com/
Medios Fisicos http://fisicamoderna9.blogspot.com/
Particulas Fundamentales http://fisicamoderna9.blogspot.com/
Microscopio Electronico De Barrido Meb http://fisicamoderna9.blogspot.com/
Fabricacion De Chips http://fisicamoderna9.blogspot.com/
Efecto Fotoelectrico http://fisicamoderna9.blogspot.com/
Fisica Atómica http://fisicamoderna9.blogspot.com/
Energía Relativista http://fisicamoderna9.blogspot.com/
Einstein
Criptografía Cuántica http://fisicamoderna9.blogspot.com/

Último (20)

PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
DOCX
Guía 5. Test de orientación Vocacional 2.docx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
informe_fichas1y2_corregido.docx (2) (1).pdf
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
CyberOps Associate - Cisco Networking Academy
DOCX
Contenido Fundamentos de comunicaciones Fibra Optica (1).docx
PDF
Diapositiva proyecto de vida, materia catedra
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Documental Beyond the Code (Dossier Presentación - 2.0)
Presentacion de Alba Curso Auditores Internos ISO 19011
historia_web de la creacion de un navegador_presentacion.pptx
Guía 5. Test de orientación Vocacional 2.docx
Influencia-del-uso-de-redes-sociales.pdf
Propuesta BKP servidores con Acronis1.pptx
informe_fichas1y2_corregido.docx (2) (1).pdf
El-Gobierno-Electrónico-En-El-Estado-Bolivia
Sesion 1 de microsoft power point - Clase 1
CyberOps Associate - Cisco Networking Academy
Contenido Fundamentos de comunicaciones Fibra Optica (1).docx
Diapositiva proyecto de vida, materia catedra
Presentación PASANTIAS AuditorioOO..pptx
TRABAJO DE TECNOLOGIA.pdf...........................
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN

Vbr Awt 01

  • 1. AWT Introducción Componentes y contenedores Elementos Básicos Administradores de diseño Ventanas Manejo de eventos Tipos y auditores de evento Línea de Trabajo Bibliografía 1
  • 2. Introducción AWT = Abstract Window Toolkit (Juego de Herramientas de Ventanas Abstracto) Permite el desarrollo de interfaces gráficas de usuario rápida y fácilmente. Contiene una mezcla de los componentes GUI más simples. La mayoría de sus clases e interfaces se pueden usar en: applets aplicaciones El paquete básico es java.awt.* 2
  • 3. Componentes y Contenedores Component: es la superclase del conjunto de clases del AWT. Container: se usa para definir componentes que pueden contener a otros componentes. java.lang.Object | +--java.awt.Component | +--java.awt.Container 3
  • 4. Componentes y Contenedores Component: incluye métodos para trabajar con manipuladores de eventos imágenes fuentes colores Container: ofrece métodos para manipular los componentes añadir recuperar mostrar contar eliminar trabajar con administradores de diseño 4
  • 5. La Primera import java.awt.*; import java.awt.event.*; Ventana class Ventana extends Frame{ public Ventana(){ super ("Ejemplo de Ventana"); inicializacionComponentes(); addWindowListener(new AdaptadorVentana()); setSize(300,200); setVisible(true); } private void inicializacionComponentes(){ // Establecer Gestor de Posicionamiento //Crear Componentes Gráficos // Añadir al contenedor } public static void main(String arg[]){ Ventana f = new Ventana(); } private class AdaptadorVentana extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(1); } } } 5
  • 6. Elementos Básicos: Botones Button (Botón) Se utilizan para ejecutar alguna acción asociada cuando el usuario lo pulsa. Dos constructores: • Button() • Button(String label) Ejemplo: Button boton=new Button(“Aceptar”); 6
  • 7. Elementos Básicos: Label Label (Etiqueta) Se utilizan para escribir cadenas de caracteres alineadas dentro de los limites del objeto de este tipo. Tres constructores: • Label() • Label(String label) • Label(String label, int aligment) Ejemplo: Label etiqueta=new Label(“Bienvenido”,Label.CENTER); 7
  • 8. Elementos Básicos: Checkbox Checkbox (Casilla de verificación) Representa una casilla de verificación a seleccionar. Para comprobar el estado • getState Para establecer el estado • setState Se pueden asociar en grupos dentro de un elemento CheckboxGroup Ejemplo: Checkbox check=new Checkbox(“One”,grupoCheck, true); • Nota: grupoCheck es una instancia de un objeto CheckboxGroup 8
  • 9. Elementos Básicos: CheckboxGroup CheckboxGroup (Agrupación de Casilla de verificación) Agrupa un conjunto de checkbox de manera que sólo se puede seleccionar uno de ellos. Para comprobar la casilla activa • getSelectedCheckBox Para establecer la casilla activa • setSelectedCheckBox Ejemplo: CheckboxGroup cbg = new CheckboxGroup(); add(new Checkbox("one", cbg, true)); add(new Checkbox("two", cbg, false)); add(new Checkbox("three", cbg, false)); 9
  • 10. Elementos Básicos: Choice Choice (Selección) Seleccionar una opción de entre varias visualizando solo una de ellas. Para añadir elementos: addItem Para contar los elementos: countItems Para seleccionar un elemento: select Para obtener el elemento asignado: getSelectedItem Para establecer el índice del elemento asignado: getSelectedIndex Ejemplo: Choice colorChooser = new Choice(); colorChooser.add("Green"); colorChooser.add("Red"); colorChooser.add("Blue"); 10
  • 11. Elementos Básicos: TextField TextField (Campos de texto) Implementa una zona de entrada de texto en una sola línea. Para cambiar el texto setText Para obtener el texto getText Ejemplo: TextField tf1, tf2, tf3, tf4; tf1 = new TextField(); tf2 = new TextField("", 20); tf3 = new TextField("Hello!"); tf4 = new TextField("Hello", 30); 11
  • 12. Elementos Básicos: TextArea TextArea (Campos de área de texto) Implementa una zona de entrada de varias líneas de texto.Incluye su propia barra de desplazamiento. Para cambiar el texto disponemos de métodos: appendText, insertText y replaceText. Para obtener el texto getText. Ejemplo: new TextArea("Hello", 5, 40); 12
  • 13. Elementos Básicos: Scrollbar Scrollbar (Barra de desplazamiento) Permiten seleccionar un valor entre un mínimo y un máximo determinado. Disponemos de los métodos: getValue, setValue, getMinimum y getMaximum. Ejemplo: ranger = new Scrollbar(Scrollbar.HORIZONTAL, 0, 60, 0, 300); add(ranger); 13
  • 14. Administradores de diseño: Descendientes de Container Panel Es un contenedor genérico que se puede mostrar dentro de applets y aplicaciones. ScrollPane Es un contenedor desplazable que puede tener barras de desplazamiento verticales y horizontales. Window Ofrece unas subclases para las ventanas principales de aplicación, objetos Frame y ventanas Dialog. • Estas tres clases cumplen la función de hospedar a los componentes ya vistos pudiendo tener asociado un gestor de organización (LayoutManager). 14
  • 15. Administradores de diseño: Container Cada Container tiene asociado un administrador de diseño que establece la forma de colocar los componentes dentro de un Container. El administrador de diseño debe implementar la interfaz LayoutManager. La interfaz LayoutManager2 amplia sus funciones. Para establecer el LayoutManager se usa el método setLayoutManager del Container. Existen varios administradores de diseño: FlowLayout BorderLayout GridLayout GridBagLayout CardLayout 15
  • 16. Administradores de diseño: Container Como trabajar con Paneles Creación del panel • Panel p = new Panel (); Añadir un administrador de diseño al panel • p.setLayout(new FlowLayout()); Añadir los componentes al panel • Label b = new Label(“Dentro del panel”); • p.add(b); Si no es un root Panel se añade al panel principal como un componente mas • frame.add(p); Comentarios Todas las ventanas (dialogo - principales) y applet tienen asociado un panel inicial Cuando el GUI es complicado los paneles se modelan en clases independientes extendiendo de la clase Panel 16
  • 17. Administradores de diseño: Container Ejemplo //Creación de variables de instancia private Label label1; private Panel p; ... //Creación de un container p = new Panel(); //Establecer administradores de diseño para los contenedores this.setLayout(new FlowLayout()); p.setLayout(new FlowLayout()); //Creación de componentes label1 = new Label("Dentro de un Panel"); //Añadir componentes a los contenedores p.add(label1); this.add(p); 17
  • 18. Administradores de diseño: FlowLayout Se colocan los elementos desde la esquina superior izquierda, de izquierda a derecha y de arriba a abajo. La separación entre componentes puede indicarse en el constructor. (Redimensionar la ventana para observar la recolocación de los componentes) //Creación de variables de instancia //this es la autoreferencia de un objeto Frame this.setLayout(new FlowLayout()); this.add(new Button("Boton 1")); this.add(new Button("Boton 2")); this.add(new Button("Boton 3")); this.add(new Button("Nombre Largo Boton 4")); this.add(new Button("5")); 18
  • 19. Administradores de diseño: BorderLayout Se colocan los elementos siguiendo una distribución en zonas: arriba, abajo, izquierda, derecha y centro. Los elementos de los extremos ocupan el espacio que les sea necesario. El central ocupa todo el que quede disponible. // Asignacion del administrador de diseño //this es la autoreferencia de un objeto Frame this.setLayout(new BorderLayout()); // Añadir componentes al panel Button button = new Button("Boton 1 (PAGE_START)"); this.add(button, BorderLayout.PAGE_START); button = new Button("Boton 2 (CENTER)"); this.add(button, BorderLayout.CENTER); button = new Button("Boton 3 (LINE_START)"); this.add(button, BorderLayout.LINE_START); button = new Button("Boton 4 (PAGE_END)"); this.add(button, BorderLayout.PAGE_END); button = new Button("Boton 5 (LINE_END)"); this.add(button, BorderLayout.LINE_END); 19
  • 20. Administradores de diseño: GridLayout Se organizan los elementos por cuadriculas. Todos los elementos tienen el mismo tamaño. El constructor se usa para determinar el número de cuadrículas. Se puede indicar huecos entre las Cuadriculas Constructores GridLayout(int filas, int colums) GridLayout(int filas, int colums, int xhueco, int yhueco) / Asignación del administrador de diseño /this es la autoreferencia de un objeto Frame his.setLayout(new GridLayout(3,2,2,2)); / Añadir componente al panel utton button; or (int i=1;i<=6;i++){ button= new Button("Boton " + i); this.add(button); 20
  • 21. Administradores de diseño: GridBagLayout Se organizan los elementos por cuadrículas. Los elementos pueden ocupar más de una fila o columna. Usa la clase GridBagConstraints. Se usa para identificar los parámetros de posicionamiento de un componente. 21
  • 22. Administradores de diseño: CardLayout Solo se ve uno de sus componentes en cada momento. Sirve como base para tener varias ventanas una debajo de otra. Se puede asignar a cualquier contenedor Son especialmente útiles con contenedores del tipo JTabbedPane Capa 1 Capa 2 Capa 3 22
  • 23. Administradores de diseño: Nulo Se permite trabajar sin administradores de diseño Se indica la posición absoluta de cada componente en el contenedor con el método setBounds. setBounds(int x,int y,int anchura,int altura) / Asignacion del administrador de diseño nulo /this es la autoreferencia de un objeto Frame his.setLayout(null); utton boton1 = new Button("Boton 1"); oton1.setBounds(30,30,200,100); his.add(boton1); utton boton2 = new Button("Boton 2"); oton2.setBounds(200,100,100,100); his.add(boton2); 23
  • 24. Ventanas Para el trabajo con ventanas tenemos: Window: ventana de alto nivel sin bordes ni barra de menús. Frame: subclase de Window Dialog: subclase de Window Frame: subclase de Window. tiene una barra de título, esquinas para cambiar de tamaño y una barra de menú. Puede ser la ventana principal o secundaria. setVisible(boolean)para mostrar y esconder el Frame. setMenuBar cambia la barra de menú. setTitle cambia el título de la ventana. Dialog ventana de dialogo asociada a una ventana de nivel superior 24
  • 25. Manejo de Eventos:IntroducciónI El usuario se comunica con los programas de ventana ejecutando acciones sobre los componentes gráficos. Estas acciones tienen como resultado la generación de eventos. Los programas de ventanas son “conducidos por eventos”. El JDK 1.0.2 admitía un enfoque “modelo heredado”. Se devuelve true o false si el componente gestiona el tipo de evento. Si no se gestiona se envía al contenedor del objeto, así sucesivamente. El JDK 1.1 introduce el enfoque “delegación de eventos”. Entrega los eventos a objetos específicos. Menos complejo y más eficaz. 25
  • 26. Manejo de Eventos: IntroducciónII La clase java.util.EventObject es la clase de nivel superior de la jerarquía de eventos. Esta clase ofrece: Una variable source, origen del evento. Un método getSource() recupera el objeto fuente del evento. Un solo constructor que toma como argumento el objeto origen del evento. La clase java.awt.AWTEvent hereda de la clase java.util.EventObject para admitir los eventos de AWT. Recoger evento Procesar evento Registra auditor Componente addXXXListener() Listener 26
  • 27. Manejo de Eventos: Introducción III Asociación/registro de auditores/oyentes/listener Cada componente puede tener asociado varios tipos de auditores a través de una interface. Ej: A un botón se le puede asociar un oyente que implemente la interface java.awt.event.ActionListener ... b = new Button("Boton"); b.addActionListener(new Oyente()); // Registrar auditor ... class Oyente implements ActionListener{ public void actionPerformed(ActionEvent e){ ... } } Recoger evento Procesar evento Registra auditor Componente addActionListener() Listener Envía evento 27
  • 28. Manejo de Eventos: Introducción IV class Ventana extends Frame{ private Button b; Ejemplo: Se tiene un botón public Ventana(){ con un oyente super ("Ejemplo de Ventana"); inicializacionComponentes(); asociado setSize(300,200); El oyente audita al setVisible(true); componente y } realiza private void inicializacionComponentes(){ operaciones en setLayout(new FlowLayout()); b = new Button("Boton"); función de los b.addActionListener(new Oyente()); eventos recibidos add(b); por el botón. } En el ejemplo el public static void main(String arg[]){ Ventana f = new Ventana(); oyente cambia el } color del botón private class Oyente implements cuando éste es ActionListener{ pulsado. public void actionPerformed(ActionEvent e){ Button baux=(Button) e.getSource(); baux.setBackground(Color.RED); } } } 28
  • 29. Manejo de Eventos: Introducción V Ejercicio: Realizar una Ventana con un Button El oyente que audita al botón cambiará alternativamente los colores de un objeto cuando éste es pulsado (azul – rojo) 29
  • 30. Manejo de Eventos: Consideraciones de diseño I Implementación de oyentes Implementación de interface • Ventaja tiene acceso a la parte privada de la clase class Ventana extends Frame implements ActionListener{ private Button b; ... b.addActionListener(this); ... //Método de la interface ActionListener public void actionPerformed(ActionEvent e){ Button baux=(Button) e.getSource(); baux.setBackground(Color.RED); } }//Fin class Ventana 30
  • 31. Manejo de Eventos: Consideraciones de diseño II Implementación de oyentes Clases internas (inner) • Ventajas tiene acceso a la parte privada de la clase que la contiene (outer) y mantiene un encapsulamiento del oyente dentro de la clase class Ventana extends Frame{ private Button b; ... b.addActionListener(new Oyente()); ... //Clase interna tiene acceso a la parte privada de Ventana private class Oyente implements ActionListener{ public void actionPerformed(ActionEvent e){ Button baux=(Button) e.getSource(); baux.setBackground(Color.RED); } }//Fin class Oyente }//Fin class Ventana 31
  • 32. Manejo de Eventos: Consideraciones de diseño III Implementación de oyentes Clases externas • El oyente se asocia igual que con clases internas • La clase Auditor (class Oyente) no puede acceder a la zona privada de la clase que le contiene (class Ventana) Clases anónimas class Ventana extends Frame{ private Button b; ... b.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ Button baux=(Button) e.getSource(); baux.setBackground(Color.RED); });//Fin class anónima }//Fin class Ventana 32
  • 33. Manejo de Eventos: Consideraciones de diseño IV Asociación de oyentes Posibilidades de asociación • “n” oyentes a “1” componente Oye nte 1 Oye nte 2 Co mpon ente Oye nte 3 • “1” oyente a “n” componentes Componente 1 Oyente Componente 2 Componente n • “1” oyente a “1” componente Oyente Compon ente 33
  • 34. Manejo de Eventos: Consideraciones de diseño V Asociación de oyentes b1 = new Button("Boton dos listener"); b2 = new Button("Boton un listener"); t1 = new TextField(10); //Asociación n a 1 b1.addActionListener(new Oyente1()); b1.addActionListener(new Oyente2()); //Asociación 1 a n b2.addActionListener(new Oyente1()); private class Oyente1 implements ActionListener{ public void actionPerformed(ActionEvent e){ Button baux=(Button) e.getSource(); baux.setBackground(Color.RED); } }//Oyente1 private class Oyente2 implements ActionListener{ public void actionPerformed(ActionEvent e){ t1.setText("Boton pulsado"); } 34
  • 35. Tipos y auditores de evento I Tipos de eventos (heredan de java.awt.AWTEvent) Eventos Descripción ActionEvent Pulsación de botones o la selección de elementos de menú. AdjustmenEvent Acciones de desplazamiento. ComponentEvent Cambios en la posición, foco o tamaño de un componente de ventana, o una entrada de teclado u otra acción del ratón. InputMethodEvent Cambios en el texto que se introducen a través de un método de entrada. ItemEvent Cambios en el estado de un componente como la selección de un elemento de la lista. TextEvent Cambios en los textos 35
  • 36. Tipos y auditores de evento II Tipos de eventos (heredan de java.awt.AWTEvent) Eventos Descripción FocusEvent Cambios en el estado de un foco de entrada de un componente. InputEvent Se clasifican en KeyEvent y MouseEvent para cubrir los eventos que generan las acciones del teclado y los eventos de bajo nivel del ratón. ContainertEvent eventos asociados a la suma y eliminación de los componentes de un contenedor. PaintEvent Se genera el dibujo/redibujo de una ventana. WindowEvent la generan eventos como la apertura, cierre y minimización de una ventana. 36
  • 37. Tipos y auditores de evento III Las clases AWTEvent y sus subclases dirigen los eventos hacía los objetos registrados como oyentes. Los oyentes (auditores) implementan la interfaz java.util.EventListener (no define constantes ni métodos). Tipos de auditores (heredan java.awt.event.EventListener ) Auditores Eventos asociados ActionListener ActionEvent AdjustmentListener AdjustmenEvent ComponentListener ComponentEvent ContainerListener ContainerEvent FocusListener FocusEvent InputMethodListener InputMethodEvent 37
  • 38. Tipos y auditores de evento IV Tipos de auditores (heredan java.awt.event.EventListener Auditores Eventos asociados ItemListener ItemEvent KeyListener KeyEvent MouseListener MouseEvent MouseMotionListener MouseEvent TextListener TextEvent WindowListener WindowEvent 38
  • 39. Tipos y auditores de evento V Clases adaptadoras Por comodidad se ofrecen clases adaptadoras que implementan las interfaces de audición de eventos. Se pueden utilizar para pasar por alto métodos específicos de manejo de eventos. Auditores Clases adaptadoras que implementan el auditor ComponentListener ComponentAdapter ContainerListener ContainerAdapter FocusListener FocusAdapter KeyListener KeyAdapter MouseListener MouseAdapter MouseMotionListener MouseMotionAdapter WindowListener WindowAdapter 39
  • 40. Tipos y auditores de evento VI Relación componentes awt/swing y auditores Los componentes awt/swing descienden de awt.Component Se puede asignar los siguientes Listener • component listener • focus listener • key listener • mouse listener • mouse-motion listener • mouse-wheel listener (introducido en 1.4) Dependiendo del tipo de componente podrá tener además otros listener asociados 40
  • 41. Tipos y auditores de evento VII Relación componentes awt y auditores able edit document,undo window change action caret item Componentes button X X X check box X X X radio button X X X text area X X text field X X X Frame X 41
  • 42. Línea de Trabajo JFC = Java Foundation Classes Agrupa a AWT y lo amplia con nuevas APIs como Swing Java 2D, Java 3D Drag-and-Drop Accessibility Swing es parte de JFC ... aunque con distintas características que AWT. Permiten elaborar interfaces gráficas más potentes. http://java.sun.com/docs/books/tutorial/uiswing/compon ents/components.html Desventajas: complejidad de manejo problema en el soporte por parte de los navegadores. 42
  • 43. Bibliografía [Jaworski 1999] Jaworski, J. (1999). Java 1.2 Al Descubierto.. Prentice Hall. Capítulo 6, Construcción de GUI. [Walrath et al., 2004] Walrath,K., Campione,M., Huml A., Zakhour S., (2004). The JFC Swing Tutorial: A Guide to Constructing GUIs, Second Edition. Addison-Wesley . • Disponible en formato electrónico en inglés • http://java.sun.com/docs/books/ [Horstmann et al., 2003] Horstmann, G.S., Cornell, G. (2003) Java 2. Fundamentos. Volumen 1. Prentice Hall Java2 SDK, Standard Edition Documentation 43