Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Swing
Swing
Window frame
Menu bar
Toolbar
Panel de edición
1
Interfaces gráficas de usuario
Window frame
Toolbar y botones
Panel
Scroll pane
Panel de edición
Plug-in de estilo de texto
Swing
{ Las clases que se usan para crear los componentes del
GUI en Java son las clases del paquete javax.swing
{ Originalmente, los interfaces gráficos se escribían en
Java con el paquete AWT (Abstract Windowing Toolkit)
z AWT es dependiente de la plataforma (tiene distintas apariencias
en Windows que en Linux, incluso dentro de Linux, depende del
gestor gráfico que usemos)
{ Los componentes Swing permiten al programador especificar
una apariencia diferente en cada plataforma, o igual para
todas. ¡Están escritos en Java!
{ Los componentes y contenedores forman parte de una
jerarquía de objetos.
Arquitectura de Ordenadores
21/05/03 2002/2003 4
2
La aplicación mas básica –Hola Mundo-
Arquitectura de Ordenadores
21/05/03 2002/2003 5
3
Hola Mundo v. 0.2
import javax.swing.*;
import java.awt.event.*;
Arquitectura de Ordenadores
21/05/03 2002/2003 8
4
JLabel
{ También se pueden crear etiquetas con
imágenes o imágenes y texto:
Icon img=new ImageIcon(“dibujo.gif”);
JLabel et=new JLabel(“Texto”,img, SwingConstants.LEFT);
Arquitectura de Ordenadores
21/05/03 2002/2003 9
Arquitectura de Ordenadores
21/05/03 2002/2003 10
5
Modelo de gestión de eventos
Event listeners
{ Un event listener es una clase que implementa una o más interfaces de
escucha de eventos
z Un objeto de esta clase “escucha” a la espera de ciertos tipos de eventos generados por
él mismo o por otros objetos en un programa.
{ Un event handler es un método que se llama automáticamente como
respuesta a un evento.
{ Cada interfaz de event-listener especifica uno o más métodos que DEBEN ser
definidos en la clase que implementa el interfaz
{ Esto se denomina gestión de eventos por delegación.
{ Cuando se produce un evento, el componente gráfico con el que el usuario ha
interactuado se lo notifica a sus listeners registrados.
{ ¿Cómo se hace?
Arquitectura de Ordenadores
21/05/03 2002/2003 11
Container c=getContentPane();
c.setLayout(new FlowLayout());
Creamos un botón
etiqueta=new JLabel("Hola Mundo");
c.add(etiqueta);
6
Modelo de gestión de eventos
Event handler
{
Arquitectura de Ordenadores
21/05/03 2002/2003 13
keyPressed(KeyEvent)
KeyListener
keyReleased(KeyEvent)
KeyAdapter
keyTyped(KeyEvent)
mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
MouseListener
mouseExited(MouseEvent)
MouseAdapter
mousePressed(MouseEvent)
mouseReleased(MouseEvent)
windowOpened(WindowEvent)
windowClosing(WindowEvent)
windowClosed(WindowEvent)
WindowListener
windowActivated(WindowEvent)
WindowAdapter
windowDeactivated(WindowEvent)
windowIconified(WindowEvent)
windowDeiconified(WindowEvent)
ItemListener itemStateChanged(ItemEvent)
Arquitectura de Ordenadores
21/05/03 2002/2003 14
7
Ejemplo de uso de KeyListener
{ En el fichero EventosTeclado.java podemos ver un ejemplo de uso
de KeyListener
z Al pulsar una letra, ésta cambia de tamaño,y al soltarla, vuelve a su tamaño
original
Arquitectura de Ordenadores
21/05/03 2002/2003 15
}
Arquitectura de Ordenadores
21/05/03 2002/2003 16
8
Layouts
Indican cómo se disponen los
componentes en la ventana:
z FlowLayout (Los va
colocando en orden)
z BorderLayout
(divide el contenedor en
Norte, Sur, Este, Oeste y
Centro)
z GridLayout (permite
dividir el contenedor
como si fuera una tabla)
z GridBagLayout
(algo más complejo que
el anterior y más
potente)
{ En el ejemplo anterior los
componentes se nos En el fichero EventosTeclado3.java
pusieron en FlowLayout tenemos un ejemplo completo de
Layouts y otros aspectos
Arquitectura de Ordenadores
21/05/03 2002/2003 17
EventosTeclado3.java
Arquitectura de Ordenadores
21/05/03 2002/2003 18