PDF de programación - Swing - Java y Servicios Web I - Master en Ingeniería Matemática

Imágen de pdf Swing - Java y Servicios Web I - Master en Ingeniería Matemática

Swing - Java y Servicios Web I - Master en Ingeniería Matemáticagráfica de visualizaciones

Publicado el 14 de Enero del 2017
824 visualizaciones desde el 14 de Enero del 2017
1,2 MB
69 paginas
Creado hace 7a (28/05/2012)
Interfaces gráficas con

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

llamada AWT.

● 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 void main(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 sus recursos.

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 con Swing

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 con Swing

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 de colocar 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.

● Métodos:

● setAligment(int alineacion)
● setHgap(int separacion)
● setVgap(int separacion)

28/Mayo/2012

8. Interfaces gráficas con Swing

14

GridLayout

● Coloca los componentes de la interfaz en

forma de rejilla.

● El orden en que se añadan los componentes

determina su posición en la rejilla.

● Constructor:

● GridLayout(int filas, int columnas)

● Métodos:

● setHgap(int separacion)
● setVgap(int separacion)

28/Mayo/2012

8. Interfaces gráficas con Swing

15

GridLayout

public class MiVentana2 extends JFrame {
public MiVentana2() {
super("Titulo de ventana");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = getContentPane();
GridLayout gl = new GridLayout(4,3);
gl.setHgap(5); gl.setVgap(5);
cp.setLayout(gl);
for(int i = 1; i <= 9; i++) {
cp.add(new JButton(String.valueOf(i)));
}
cp.add(new JButton("*"));
cp.add(new JButton("0"));
cp.add(new JButton("#"));
}
}

28/Mayo/2012

8. Interfaces gráficas con Swing

16

GridLayout

28/Mayo/2012

8. Interfaces gráficas con Swing

17

BorderLayout

● Coloca y cambia de tamaño sus componentes

para que se ajusten a los bordes y parte
central de la ventana.

● Métodos:

● setHgap(int separacion)
● setVgap(int separacion)

● Al añadir un elemento a la

ventana, hay que especificar
su colocación:
JButton b = new JButton(...);
getContentPane().add(b, BorderLayout.EAST)

28/Mayo/2012

8. Interfaces gráficas con Swing

18

Interfaces complejas: JPanel

● Un panel es un componente con un layout

manager propio, y que puede contener varios
componentes en su interior.

● Constructor:

● JPanel()
● Métodos:

● void setLayout(LayoutManager lm)
● void add(JComponent componente)
● …

28/Mayo/2012

8. Interfaces gráficas con Swing

19

Interfaces complejas: JPanel

28/Mayo/2012

8. Interfaces gráficas con Swing

20

Interfaces complejas: JPanel

GridLayout

FlowLayout

FlowLayout

28/Mayo/2012

8. Interfaces gráficas con Swing

21

Interfaces complejas: JPanel

public MiVentana3() {
super("Añadir usuario");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Panel de fecha
JPanel panelFecha = new JPanel();
panelFecha.setLayout(new FlowLayout());
panelFecha.add(new JTextField(2));
panelFecha.add(new JLabel("/"));
panelFecha.add(new JTextField(2));
panelFecha.add(new JLabel("/"));
panelFecha.add(new JTextField(2));
// Panel de datos
JPanel panelDatos = new JPanel();
GridLayout gl = new GridLayout(3,2,0,5);
panelDatos.setLayout(gl);
panelDatos.add(new JLabel("Nombre:"));
panelDatos.add(new JTextField(10));
panelDatos.add(new JLabel("DNI:"));
panelDatos.add(new JTextField(10));
panelDatos.add(new JLabel("Fecha de nacimiento: "));
panelDatos.add(panelFecha);


28/Mayo/2012

8. Interfaces gráficas con Swing

22

Interfaces complejas: JPanel


// Panel de botones
JPanel panelBotones = new JPanel();
panelBotones.setLayout(new FlowLayout());
panelBotones.add(new JButton("Aceptar"));
panelBotones.add(new JButton("Cancelar"));

Container cp = getContentPane();
cp.add(panelDatos, BorderLayout.CENTER);
cp.add(panelBotones, BorderLayout.SOUTH);
}

28/Mayo/2012

8. Interfaces gráficas con Swing

23

Interfaces complejas: GridBagLayout

● Más flexible que GridLayout
● Cada componente ha de tener asociado un
objeto de la clase GridBagConstraints. La
asociación se producirá en el método add.

JButton b = new JButton(“Aceptar”);
GridBagConstraints gbc = new GridBagConstraints(...);
getContentPane().add(b, gbc);

28/Mayo/2012

8. Interfaces gráficas con Swing

24

GridBagConstraints

● Atributos públicos:
● int gridx, gridy
● int gridwidth, gridheight
● double weightx, weighty
● int fill
● int anchor
● Insets insets
● int ipadx, ipady

● Pueden ser inicializados en el constructor.

28/Mayo/2012

8. Interfaces gráficas con Swing

25

GridBagConstraints

● Atributos públicos:
● int gridx, gridy

28/Mayo/2012

8. Interfaces gráficas con Swing

26

GridBagConstraints

● Atributos públicos:

● int gridwidth, gridheight

gridheight = 2

gridwidth = 2

28/Mayo/2012

8. Interfaces gráficas con Swing

27

GridBagConstraints

● Atributos públicos:

● double weightx, weighty

weightx = 1.0

weightx = 0.0

28/Mayo/2012

8. Interfaces gráficas con Swing

28

GridBagConstraints

● Atributos públicos:

● int fill
● Puede ser:

● GridBagLayout.HORIZONTAL
● GridBagLayout.VERTICAL
● GridBagLayout.BOTH

28/Mayo/2012

8. Interfaces gráficas con Swing

29

GridBagConstraints

● Atributos públicos:

● int anchor

28/Mayo/2012

8. Interfaces gráficas con Swing

30

GridBagConstraints

● Atributos públicos:

● Insets insets

insets = new Insets(10, 20, 10, 20)

28/Mayo/2012

8. Interfaces gráficas con Swing

31

GridBagConstraints

● Atributos públicos:
● int padx, int pady

● Especifican cuánto espacio añadir a la

anchura/altura mínima de los componentes.

28/Mayo/2012

8. Interfaces gráficas con Swing

32

Constructores de interfaces

● Permiten construir interfaces de usuario

interactivamente.

● Ejemplo: Netbeans (netbeans.org)

28/Mayo/2012

8. Interfaces gráficas con Swing

33

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

34

Manejo de eventos

● Un evento es un suceso que ocurre como

consecuencia de la interacción del usuario con
la interfaz gráfica.
● Pulsación de un botón.
● Cambio del contenido en un cuadro de t
  • Links de descarga
http://lwp-l.com/pdf818

Comentarios de: Swing - Java y Servicios Web I - Master en Ingeniería Matemática (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad