Historia
Swing
Andrés Marín López Jesús Arias Fisteus Laboratorio de Aplicaciones Telemáticas
Índice
• • • • • Introducción a Swing Componentes Layouts Modelo de eventos Accesibilidad
2
Aplicaciones gráficas
• En Java, hay varias alternativas:
– AWT (Abstract Window Toolkit) – JFC Swing – SWT (Standard Widget Toolkit)• El paradigma de programación de aplicaciones gráficas en Java es similar al de otros lenguajes y bibliotecas
3
JFC
• Java Foundation Classes incluye paquete swing para crear interfaces gráficas • Permite al programador elegir la apariencia (Pluggable Look and Feel) entre Java, windows, GTK+, etc. • Incluye otros APIs adicionales:
– accesibilidad, – 2D, – arrastrar y soltar entreaplicaciones – internacionalización
4
Paquetes JFC
– javax.accessibility – javax.swing.plaf – javax.swing.text.html – javax.swing.plaf.multi – javax.swing.tree
– javax.swing.event
– javax.swing.table – javax.swing.undo – javax.swing.filechooser – javax.swing.text
– javax.swing
– javax.swing.plaf.basic – javax.swing.text.parser – javax.swing.border – javax.swing.plaf.metal –javax.swing.text.rtf – javax.swing.colorchooser
5
Swing
• Se basa en AWT, pero es:
– Más potente, completo y elegante. – Más eficiente.
• Referencias básicas:
“Creating a GUI with JFC/Swing” (The Swing Tutorial) http://java.sun.com/docs/books/tutorial/uiswing/ The Swing Connection http://java.sun.com/javase/technologies/desktop/articles.jsp
6
Componentes
• Cada elemento gráfico de GUIes un componente • Cada componente es una instancia de una clase • Un componente se crea como cualquier otro objeto Java • Algunos componentes pueden contener a otros componentes (son contenedores)
http://java.sun.com/docs/books/tutorial/uiswing/components/index.html
7
Contenedores de alto nivel
Applets
Diálogos
Marcos (ventanas)
8
Contenedores de alto nivel
• Cada contenedorde alto nivel tiene un JRootPane que es la raíz de la jerarquía de contenedores. • Todo componente GUI debe formar parte de la jerarquía de contenedores. • Cada componente GUI sólo puede aparecer una vez. • Un contenedor de alto nivel puede opcionalmente tener una barra de menús.
9
Contenedores intermedios
Panel
Panel deslizante Panel con solapas
Panel dividido
Barra deherramientas
10
Contenedores específicos
Panel interno
Panel de capas
11
Controles básicos
Botones
Cajas combo
Listas
Controles deslizantes
Menús Campos de texto (con/sin formato) 12
Controles numéricos
Displays no editables
Etiquetas
Barras de progreso
Pistas de herramientas (tool tips)
13
Displays interactivos
Selector de colores
Selector deficheros
Tabla
Texto
Árboles
14
Más sobre componentes
• Cada componente implementa un método paint() que contiene el código para pintarlo • Cuando el entorno necesita volver a pintar un componente, invoca a su método repaint()
http://java.sun.com/docs/books/tutorial/uiswing/components/index.html
15
Pasos básicos
• Importar paquetes javax.swing.XXX • Disponer un contenedor:– JFrame – JDialog – JApplet
• Agregar componentes al contenedor • Mostrar el contenedor • Los GUIs deben ser creados en el hilo de atención a eventos
16
Hola Mundo
import javax.swing.*; public class HelloWorldSwing { public void createAndShowGUI() { JFrame.setDefaultLookAndFeelDecorated(true); JFrame frame = new JFrame("HelloWorldSwing");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { HelloWorldSwing hello = new HelloWorldSwing(); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { hello.createAndShowGUI(); } }); }
17
Look And Feel
Java
GTK+
MacOS
Microsoft Windows
18...
Regístrate para leer el documento completo.