Swing Ventanas En Java
Swing
Java y Servicios Web I
Master en Ingeniería Matemática
Manuel Montenegro
Dpto. Sistemas Informáticos y Computación
Desp. 467 (Mat)
montenegro@fdi.ucm.es
Introducción
●
●
●
●
Swing es una biblioteca de interfaces gráficas de
usuario (GUI) para Java.
Viene incluida con el entorno de desarrollo de Java
(JDK).
Extiende a otra librería gráfica más antigua
llamadaAWT.
Paquetes:
●
●
●
●
javax.swing
java.awt
java.awt.event
Alternativas: SWT (http://www.eclipse.org/swt/)
28/Mayo/2012
8. Interfaces gráficas con Swing
2
Contenidos
●
Ventanas
●
Componentes
●
Layout Managers
●
Manejo de eventos
●
Cuadros de diálogo predefinidos
●
Dibujo de gráficos
●
Arquitectura MVC
28/Mayo/2012
8. Interfaces gráficas con Swing
3
Creación de ventanas
●●
La clase JFrame proporciona operaciones para
manipular ventanas.
Constructores:
●
●
●
JFrame()
JFrame(String titulo)
Una vez creado el objeto de ventana, hay que:
●
Establecer su tamaño.
●
Establecer la acción de cierre.
●
Hacerla visible.
28/Mayo/2012
8. Interfaces gráficas con Swing
4
Creación de ventanas
import javax.swing.*;
public class VentanaTest {
public static voidmain(String[] args) {
JFrame f = new JFrame("Titulo de ventana");
f.setSize(400, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
●
Acciones de cierre:
●
JFrame.EXIT_ON_CLOSE: Abandona aplicación.
●
JFrame.DISPOSE_ON_CLOSE: Libera los recursos asociados a la ventana.
●
JFrame.DO_NOTHING_ON_CLOSE: No hace nada.
●
JFrame.HIDE_ON_CLOSE: Cierra la ventana, sin liberar susrecursos.
28/Mayo/2012
8. Interfaces gráficas con Swing
5
Creación de ventanas
28/Mayo/2012
8. Interfaces gráficas con Swing
6
Creación de ventanas
●
Es usual extender la clase JFrame, y realizar las
operaciones de inicialización en su constructor.
public class MiVentana extends JFrame {
public MiVentana() {
super("Titulo de ventana");
setSize(400, 300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
public class VentanaTest {
public static void main(String[] args) {
MiVentana v = new MiVentana();
v.setVisible(true);
}
}
28/Mayo/2012
8. Interfaces gráficas con Swing
7
Contenidos
●
Ventanas
●
Componentes
●
Layout Managers
●
Manejo de eventos
●
Cuadros de diálogo predefinidos
●
Dibujo de gráficos
●
Arquitectura MVC
28/Mayo/2012
8. Interfaces gráficas conSwing
8
Componentes de una ventana
JButton
JLabel
JTextField
JCheckBox
JRadioButton
●
Tras crear uno de estos componentes con new, ha de
añadirse al contentPane de la ventana
correspondiente mediante su método add.
28/Mayo/2012
8. Interfaces gráficas con Swing
9
Añadir componentes
public class MiVentana extends JFrame {
public MiVentana() {
super("Titulo de ventana");
setSize(400, 300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
JLabel etiqueta = new JLabel("Nombre: ");
JTextField texto = new JTextField(20);
JButton boton = new JButton("Saludar");
cp.add(etiqueta);
cp.add(texto);
cp.add(boton);
}
}
28/Mayo/2012
8. Interfaces gráficas con Swing
10
Añadir componentes
28/Mayo/2012
8. Interfaces gráficas conSwing
11
Contenidos
●
Ventanas
●
Componentes
●
Layout Managers
●
Manejo de eventos
●
Cuadros de diálogo predefinidos
●
Dibujo de gráficos
●
Arquitectura MVC
28/Mayo/2012
8. Interfaces gráficas con Swing
12
Layout Managers
●
●
●
En Java no es habitual indicar explícitamente la posición
de los componentes de la interfaz dentro de la ventana.
Los layout managers se encargan decolocar los
componentes de la interfaz de usuario en la ventana
contenedora.
Especifican la posición y el tamaño de dichos
componentes.
●
●
●
●
●
FlowLayout
GridLayout
BorderLayout
GridBagLayout
…
28/Mayo/2012
8. Interfaces gráficas con Swing
13
FlowLayout
●
●
Coloca los elementos uno a continuación de otro,
de manera similar a la colocación de palabras en
un procesador de textos....
Regístrate para leer el documento completo.