GUIs en Java
Dr. Antonio LaTorre
e-mail:
[email protected]
Índice
Introducción
Programando con Swing
Introducción y Jerarquía de Swing
Gestión de Eventos: Events, Listeners y Adapters
Posicionamiento de los componentes: Layouts
Interfaz gráfica para el desarrollo de GUIs
Controles Swing
Introducción
Las interfaces gráficas permiten desarrollar aplicaciones más
complejas
Aumentan la interactividad y la productividad
Sin embargo, su desarrollo conlleva una serie de complicaciones
añadidas
Los componentes de la interfaz deben ser programados
Necesitamos mecanismos para disponerlos en la pantalla
Necesitamos mecanismos de control de eventos
Afortunadamente, hay bibliotecas que nos facilitan mucho las
cosas...
Tipos de Aplicaciones
Aplicaciones autónomas
Aplicaciones de consola
Aplicaciones con interfaz gráfico (GUI)
Applets
Aplicaciones Java Web Start
Aplicaciones autónomas
Sólo necesitan la máquina virtual de Java (JVM)
Almacenadas en el disco duro del usuario
Se ejecutan con: java ClaseMain
Interfaz formada por una o varias ventanas
Aplicación finaliza cuando se cierra la ventana
Sin restricciones de seguridad específicas
Applets
Necesitan de un navegador aparte de la JVM
Normalmente, se cargan desde un servidor Web
Comienzan su ejecución cuando se carga la página Web que la
contiene
Finaliza su ejecución cuando se cierra la página
Su interfaz se incluye en una región rectangular del HTML
Tiene restricciones de seguridad
3/9/12
1
Aplicaciones Web Start
Necesitan un Gestor de Aplicaciones además de la JVM
Normalmente, se cargan desde la Web y se almacenan en el
disco duro local
Se ejecutan al pulsar un enlace en una Web
Interfaz formado por ventanas
Finaliza cuando se cierra la ventana
Tienen restricciones de seguridad
Bibliotecas GUI
Abstract Windowing Toolkit (AWT)
Standard Widget Toolkit (SWT)
Swing / JFC (desde JDK 1.1.5)
AWT
SWT
Look & Feel dependiente de la plataforma
Funcionalidad independiente de la plataforma
Controles más básicos
Estándar hasta la versión 1.1.5
Proporcionan la gestión de eventos
Look & Feel nativo en cada sistema
Más ligero que Swing
En desarrollo (puede que no todos los controles estén
disponibles)
No incluida en JDK (hay que descargar e importar las clases)
Swing / JFC
Núcleo de las Java Foundation Classes
Estándar desde la versión de JDK 1.1.5
Java Look & Feel (independiente de la plataforma)
Pluggable Look & Feel: Windows, Mac OS X, Linux
Otras APIs adicionales:
Accesibilidad
Internacionalización
• API 2-D
• Arrastrar y soltar
Paquetes JFC
javax.accessibility
javax.swing.plaf
javax.swing.text.html
javax.swing
javax.swing.plaf.basic
javax.swing.text.parser
javax.swing.border
javax.swing.plaf.metal
javax.swing.text.rtf
javax.swing.colorchooser
javax.swing.plaf.multi
javax.swing.tree
javax.swing.event
javax.swing.table
javax.swing.undo
javax.swing.filechooser
javax.swing.text
3/9/12
2
Índice
Introducción
Programando con Swing
Introducción y Jerarquía de Swing
Gestión de Eventos: Events, Listeners y Adapters
Posicionamiento de los componentes: Layouts
Interfaz gráfica para el desarrollo de GUIs
Controles Swing
Componentes de la GUI
Un componente es una instancia de una clase
Se crean como cualquier otro objeto Java
Tipos de componentes:
Contenedores: contienen a otros componentes
Lienzo (clase Canvas): superficie de dibujo
Componentes de Interfaz: botones, listas, menús, casillas de
verificación (checkboxes), texto, etc.
Elementos de construcción de ventanas: ventanas, marcos,
barras de menús, cuadros de diálogo, etc.
Jerarquía de clases Swing
Elementos básicos
Componentes GUI (widgets)
Elementos visuales del interfaz
Un programa con GUI es un conjunto de componentes
anidados
Administradores de diseño (Layouts managers)
Gestionan la organización de los componentes
Creación de gráficos y texto (clase Graphics)
Interactividad: manejo de Eventos
Jerarquía de clases AWT
Primer programa con GUI
import javax.swing.*;
public class Main {
public static void main(String[] args) {
MySimpleGUI gui = new MySimpleGUI();
}
}
class MySimpleGUI extends JFrame {
public MySimpleGUI() {
setSize(400, 200);
setTitle("Ventana de tipo JFrame");
setVisible(true);
}
}
3/9/12
3
Primer programa con GUI
import javax.swing.*;
public class Main {
public static void main(String[] args) {
MySimpleGUI gui = new MySimpleGUI();
}
}
class MySimpleGUI extends JFrame {
public MySimpleGUI() {
setSize(400, 200);
setTitle("Ventana de tipo JFrame");
setVisible(true);
}
}
Importamos el paquete que
contiene los controles Swing
19
Primer programa con GUI
import javax.swing.*;
public class Main {
public static void main(String[] args) {
MySimpleGUI gui = new MySimpleGUI();
}
}
En el constructor definimos el
tamaño y el título de la ventana
(y la hacemos visible)
}
21
class MySimpleGUI extends JFrame {
public MySimpleGUI() {
setSize(400, 200);
setTitle("Ventana de tipo JFrame");
setVisible(true);
}
Jerarquía de Swing
1. JComponent
1. AbstractButton
1.
2.
3.
JButton: El botón típico de cualquier aplicación gráfica
JMenuItem
1.
2.
3.
JMenu: Elemento de un menú
JCheckBoxMenuItem: Elemento de un menú que puede ser seleccionado
JRadioButtonMenuItem: Elemento de un menú que forma parte de un conjunto del que sólo
puede haber seleccionado uno
JToggleButton: Botón de dos estados
1.
2.
JCheckBox: Elemento que puede estar seleccionado o no
JRadioButton: Se usa junto con ButtonGroup, y sólo puede haber uno seleccionado
2. JColorChooser: Panel de selección de color
3. JComboBox: Lista desplegable de la que se puede elegir un elemento
4. JDesktopPane: Contenedor de frames internos
5. JFileChooser: Panel de selección de fichero
23
3/9/12
Primer programa con GUI
import javax.swing.*;
public class Main {
public static void main(String[] args) {
MySimpleGUI gui = new MySimpleGUI();
}
}
Creamos la clase que
representa nuestra ventana
extendiendo JFrame
class MySimpleGUI extends JFrame {
public MySimpleGUI() {
setSize(400, 200);
setTitle("Ventana de tipo JFrame");
setVisible(true);
}
}
20
22
24
Primer programa con GUI
import javax.swing.*;
public class Main {
public static void main(String[] args) {
MySimpleGUI gui = new MySimpleGUI();
}
}
class MySimpleGUI extends JFrame {
public MySimpleGUI() {
setSize(400, 200);
setTitle("Ventana de tipo JFrame");
setVisible(true);
}
}
En el método main instanciamos la
clase que acabamos de crear, para
que nos muestre la ventana
Jerarquía de Swing
6. JInternalFrame: Frame que puede colocarse dentro de otro contenedor
7. JLabel: Etiqueta donde se pueden poner texto e imágenes
8. JLayeredPane: Panel donde los objetos pueden estar a distinta profundidad
9. JList: Lista de elementos de la que podemos elegir uno o más elementos
10. JMenuBar: Barra superior del programa que contiene JMenu’s
11. JOptionPane: Permite mostrar un diálogo (junto con JDialog)
12. JPanel: Contenedor genérico sobre el que se añaden otros componentes
13. JPopUpMenu: Menú emergente que aparece al hacer click con el botón derecho
14. JProgressBar: Barra de progreso típica que se usa cuando una operación lleva
del ratón
cierto tiempo
15. JScrollBar: Barra de desplazamiento
16. JScrollPane: Panel contenedor con dos barras de desplazamiento
17. JSeparator: Línea separadora (por ejemplo, dentro de un menú)
4
Jerarquía de Swing
18. JSlider: Barra para seleccionar valores gráficamente
19. JSpinner: Permite seleccionar valores de una lista pulsando arriba y abajo
20. JSplitPane: Panel dividido en dos partes
21. JTabbedPane: Contenedor múltiple en el que seleccionamos un conjunto de
componentes a través de pestañas
22. JTable: Componente para mostrar información de forma tabular
23. JTextComponent
1.
2.
3.
JEditorPane: Facilita la creación de un editor
JTextArea: Permite la inserción de texto en múltiples líneas
JTextField: Igual que el anterior, pero sólo en una línea
1.
2.
JFormattedField: Permite introducir texto con formato
JPasswordField: El texto se oculta con el símbolo que prefiramos
24. JToolBar: Contenedor de iconos que suele aparecer en la parte superior
25. JToolTip: Texto emergente que aparece al situar el ratón sobre un control
26. JTree: Permite mostrar información jerarquizada en forma de árbol
25
27
29
Jerarquía de Composición
Contenedor
de alto nivel
Contenedor
intermedio
Componentes
básicos
Pasos básicos en la construcción de
una interfaz
1. Crear una nueva clase para nuestra ventana (o directamente
instanciar JFrame)
2. Crear los componentes de nuestra interfaz
3. Crear uno o varios contenedores intermedios
4. Asociar los componentes al contenedor
5. Asociar el contenedor a la ventana
6. Hacer visible la ventana
Jerarquía de Swing
2. Window (AWT)
1.
2.
JFrame: Ventana básica de Swing
JDialog: Ventana modal (no se permite acceder a la ventana madre)
normalmente usada para mostrar diálogos (aceptar/cancelar, etc.)
26
28
30
Ejemplo de Jerarquía de Composición
Ventana principal (JFrame)
Panel Contened
Comentarios de: GUIs en java (0)
No hay comentarios