Graphics Users Interfaces by hcj

VIEWS: 0 PAGES: 24

									Graphics Users Interfaces

        AWT - SWING

   Algoritmia y Programación
              Contenido
      Un poco de historia…
      Componentes Swing
      Caracterísitcas Swing
   Modelo – Vista – Controlador
   Componentes más comunes
Ejemplo: JLable, JButton, JTextField

     Laboratorio 5 - Preparcial

     Universidad del Valle - Algoritmia y Programación - Grupo 13   2
 Un poco de historia… AWT y SWING
• Abstract Windows Toolkit (AWT) era una herramienta
  poderosa que impulsó la popularidad de Java.
• AWT no fue diseñado para soportar los estándares de hoy,
  está limitado en el rango, tiene muchos bugs y consume gran
  cantidad de recursos del sistema.
• AWT original se tardó en escribir sólo seis semanas. Fue
  modelado con controles HTML y asignada una ventana del
  sistema operativo por componente.
• Los programadores empezaron a producir sus propios
  conjuntos de controles.
• Netscape introdujo su librería de clases Znternet Foundation
  Classes para usar con Java.

                 Universidad del Valle - Algoritmia y Programación - Grupo 13   3
 Un poco de historia… AWT y SWING
• Sun y Netsacape unieron fuerzas y dieron a lugar al
  conjunto de componentes Swing como parte de las
  clases base de Java (Java Foudation Classes).
• JFC y Swing no son lo mismo. JFC contiene Swing y otro
  gran número de elementos:
   – Swing: el gran paquete UI.
   – Cortar y pegar: soporte de portapapeles.
   – Accesibilidad: ayuda a los usuarios con aquello que no es
     posible hacer.
   – Colores del escritorio: primero se introdujo en Java 1.1.
   – Java 2D: soporte mejorado del color, imagen y texto.
   – Impresión: originalmente disponible en Java 1.1.

                  Universidad del Valle - Algoritmia y Programación - Grupo 13   4
           Componentes SWING
• Swing introdujo tres avances significativos: utiliza pocos
  recursos del sistema, añade gran cantidad de
  componentes más sofisticados y permite construir la
  apariencia de los programas.
• Swing es un conjunto de paquetes (parte más alta de
  AWT) que proporciona una gran número de clases
  preconstruidas (aproximadamente 250 clases y 40
  componentes UI):
   – Japplet: versión extendida de java.applet.Applet que
     añade el soporte para los paneles base y otros panales.


                 Universidad del Valle - Algoritmia y Programación - Grupo 13   5
        Componentes SWING
– JButton: pulsador o camando de botón.
– JCheckBox: casilla de activación que puede ser
  seleccionada o deseleccionada, de forma que visualmente
  se pueda saber su estado
– JColorChooser: panel de controles que permite al usuario
  seleccionar un color.
– JComboBox: cuadro de lista desplegable, que es una
  combinación de cuadro de texto y lista desplegable.
– JComponent: clase base para los componentes Swing.
– JDesktopPane: contenedor usado para crear una interfaz
  de documentos múltiples o un escritorio.

             Universidad del Valle - Algoritmia y Programación - Grupo 13   6
        Componentes SWING
– JDialog: clase base para crear un cuadro de diálogo.
– JEditorPane: componente de texto que permite al usuario
  editar varios tipos de contenido.
– JFiEechooser: permite al usuario elegir un archivo.
– JFrame: una versión extendida de java.awt.Frame que
  añade soporte para los paneles base y otros paneles.
– JInternalFrame: un objeto de peso ligero que proporciona
  muchas de las características de un frame.
– JInternalFrame.JDesktopIcon: representa una versión
  iconificada de una JInternalFrame.


             Universidad del Valle - Algoritmia y Programación - Grupo 13   7
        Componentes SWING
– JLabel: área visualizable para una cadena de texto corta o
  una imagen (o ambos).
– JLayeredPane: añade capas a un contenedor Swing,
  permitiendo que los componentes se solapen unos con
  otros.
– JList: componente que permite al usuario seleccionar uno
  o más objetos de una lista.
– JMenu: un menú de lista desplegable que contiene
  JMenuItems: que se visualiza cuando el usuario lo
  selecciona en el componente JMenuBar.
– JMenuBar: una implementación de una barra de menú.

              Universidad del Valle - Algoritmia y Programación - Grupo 13   8
        Componentes SWING
– JMenuItem: una implementación de una opción de menú.
– JOptionPane: facilita la posibilidad de que emerja un
  cuadro de diálogo estándar.
– JPanel: un contenedor genérico.
– JPasswordField: permite editar una línea simple de texto
  donde no muestra los caracteres originales.
– JPopupMenu: un menú emergente.
– JPopupMenu.Separator: separador de un menú específico
  emergente.
– JProgressBar: componente que visualiza un valor entero
  en un intervalo.
             Universidad del Valle - Algoritmia y Programación - Grupo 13   9
        Componentes SWING
– JRadioButton: botón de opción que puede ser
  seleccionado o no, marcando sus estado visualmente.
– JRadioButtonMenuZtern: botón de opción de un elemento
  de menú.
– JRootPane: componente fundamental de la jerarquía del
  contenedor.
– JScrollBar: implementación de una barra de
  desplazamiento.
– JScrollPane: contenedor que gestiona barras de
  desplazamiento verticales y horizontales y las cabeceras de
  filas y columnas.

              Universidad del Valle - Algoritmia y Programación - Grupo 13   10
        Componentes SWING
– JSeparator: separador de menú.
– JSlider: componente que permite al usuario seleccionar un
  valor deslizando un botón en un intervalo.
– JSplitPane: divide dos componentes.
– JTabbedPane: permite al usuario cambiar entre un grupo
  de componentes haciendo clic sobre lenguetas.
– JTable: presenta datos en un formato de tabla
  bidimensional.
– JTextArea: áre de múltiples líneas que visualiza texto
  plano.
– JTextFieEd: permite la edición de una línea de texto
  sencilla.
             Universidad del Valle - Algoritmia y Programación - Grupo 13   11
        Componentes SWING
– JTextPane: componente de texto que se puede marcar con
  atributos.
– JToggleButton: botón de dos estados.
– JToggleButton, ToggleButtonModel: modelo de botón
  toggle.
– JToolBar: barra de herramientas, útil para visualizar
  controles usados normalmente.
– JToolBar.Separator: separador específico de barra de
  herramientas.
– JTooltip: visualiza una utilidad para un componente.
– JTree: visualiza un conjunto de datos jerárquicos.
             Universidad del Valle - Algoritmia y Programación - Grupo 13   12
        Componentes SWING
– JTree.DynamicUtilTreeNode: permite separar vectores
  hashtables/arrays/cadenas y crear nodos apropiados para
  los hijos.
– JTree.EmptySelectionModel: modelo de elección de árbol
  que no permite seleccionar nada.
– JViewport: vista mediante la que se ve información.
– JWindow: ventana que puede visualizarse en cualquier
  sitio del escritorio.

   Nota: todo control y contenedor AWT, excepto JCanvas,
                tiene un sustituto en Swing.

             Universidad del Valle - Algoritmia y Programación - Grupo 13   13
Universidad del Valle - Algoritmia y Programación - Grupo 13   14
             Características SWING
• Bordes: se puede dibujar bordes alrededor de los componentes,
  utilizando el método setBorder.
• Debugging de gráficos: se puede usar el método
  setDebuggingGraphicsOptions para iniciar el debugging de gráficos.
• Facilidad de operaciones sin ratón: es fácil conectar las teclas a los
  componentes.
• Tooltips: se puede usar el método Jcomponent.setToopTipText para
  dar a los componentes un tolltip (pequeñas ventanas con texto
  explicativo), que aparece cuando se mueve el ratón alrededor de un
  componente.
• Facilidad de desplazamiento: se puede conectar el desplazamiento
  a varios componentes.
• Apariencia: se puede establecer la apariencia de los applets y
  aplicaciones como cualquiera de los tres estándares: Windows,
  Motif (Unix) o Metal (la apariencia estándar de Swing).

                    Universidad del Valle - Algoritmia y Programación - Grupo 13   15
Estructura Modelo-Vista-Controlador
El modelo de un componente está donde están
almacenados sus datos, como el estado de un botón o los
elementos de una lista.

La vista es la representación en pantalla del componente,
como la forma en que aparece un botón o una lista.

El controlador es la parte del componente que gestiona la
entrada, como los clics del ratón.



               Universidad del Valle - Algoritmia y Programación - Grupo 13   16
Componentes Swing más comunes
Los componentes Swing se localizan en el paquete
java.swing. Todos los componentes Swing son subclases de
la clase JComponent. Los más comunes son:
  –   JLabel: etiquetas.
  –   JButton: botones
  –   JTextField: cajas de texto de una sola línea.
  –   JTextArea: cajas de texto de varias líneas.
  –   JCheckBox: casillas de verificación.
  –   JRadioButton: botones de opción.
  –   JList: listas.
  –   JScrollBar: barras de desplazamiento.
  –   JOptionPane: cuadros de diálogo estándar.

                     Universidad del Valle - Algoritmia y Programación - Grupo 13   17
Universidad del Valle - Algoritmia y Programación - Grupo 13   18
 Ejemplo Componentes Swing




 Desarrollar una aplicación en Java que permita mostrar los
siguientes componentes Swing en un contenedor (ventana):
                 JLabel, JButton, JTextField


             Universidad del Valle - Algoritmia y Programación - Grupo 13   19
  Ejemplo Componentes Swing
import javax.swing.*;
import java.awt.*;

public class InterfazGUI extends JFrame {

                                      Contenedor
                                           Capa
                                         Etiqueta

                                      Caja de texto

                                           Botón




                  Universidad del Valle - Algoritmia y Programación - Grupo 13   20
         Ejemplo Componentes Swing
public InterfazGUI() {                                            Un método constructor es un
                                                                  método especial de una clase que es
     JLabel etiqueta = new JLabel("Etiqueta");
                                                                  llamado automáticamente siempre
     JButton boton = new JButton("Boton");                        que se crea un objeto de esa clase.
                                                                  Su función es iniciar los objetos.
     JTextField cajaTexto = new JTextField(5);
     FlowLayout capaFlow = new FlowLayout();                      Se distingue porque tiene el mismo
                                                                  nombre de la clase y no puede
                                                                  retornar un valor.
     Container contenedor = getContentPane();
                                                                  Un constructor por omisión de una
     contenedor.setLayout(capaFlow);
                                                                  clase es un constructor sin
     contenedor.add(etiqueta);                                    parámetros que no hace nada.
     contenedor.add(cajaTexto);
                                                                  public InterfazGUI {}
     contenedor.add(boton);
}
                          Universidad del Valle - Algoritmia y Programación - Grupo 13           21
    Ejemplo Componentes Swing

     public static void main(String[] args) {
         InterfazGUI ventana = new InterfazGUI();
         ventana.setSize(150, 100);
         Ventana.setTitle(“Swing”);
         ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         ventana.setVisible(true);
     }
}



                 Universidad del Valle - Algoritmia y Programación - Grupo 13   22
Gestor de Esquemas - FlowLayout
Java tiene un número de gestores de esquemas AWT que gestionan cómo se
visualizan e instalan los componentes en los contenedores.

FlowLayout()
FlowLayout(int align)
FlowLayout(int align, int hgap, int vhap)


Valores de align: CENTER, LEADING, LEFT, RIGHT, TRAILING

hpag y vhap se expresan en píxel.




                        Universidad del Valle - Algoritmia y Programación - Grupo 13   23
  Para tener en cuenta

                   Examen – Java Básico
        Fecha: sábado 18 de abril de 2009
                         Hora: 2:00 pm
                        Lugar: auditorio


MUY IMPORTANTE: solicitar permiso para los que se
        cruce con cualquier otra asignatura


               Traer su carnet estudiantil

        Universidad del Valle - Algoritmia y Programación - Grupo 13   24

								
To top