PDF de programación - Tema 6. Interfaces gráficas de usuario (Parte 1) - Programación en Java

Imágen de pdf Tema 6. Interfaces gráficas de usuario (Parte 1) - Programación en Java

Tema 6. Interfaces gráficas de usuario (Parte 1) - Programación en Javagráfica de visualizaciones

Publicado el 7 de Septiembre del 2020
802 visualizaciones desde el 7 de Septiembre del 2020
241,4 KB
26 paginas
Creado hace 21a (27/04/2003)
Programación en Java

Tema 6. Interfaces gráficas de usuario
(Parte 1)

Luis Rodríguez Baena

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática

1

Swing y AWT (I)

JDK 1.0 introdujo la creación de interfaces gráficas de

usuario (GUI, GraphicsUserInterfaces).
AWT (AbstractWindows Toolkit).

Java 2: JFC (Java FoundationClasses).

AWT.
Swing.
Aspecto configurable (PluggableLookandFeel).
Interfaz de accesibilidad.
API para dibujo 2D.
Soporte draganddrop.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

2

2

Swing y AWT (II)

Diferencias entre Swing y AWT.

AWT.

Soportado por JDK 1.0 y 1.1.
Utiliza código nativo de la plataforma en la que se ejecuta el programa.
Resta compatibilidad: no todos los componentes GUI de todas las

plataformas se comportan de la misma forma.

Swing.

Soportado por JDK 1.2.
No utiliza código nativo.
Todos los componentes se comportan igual en todas las plataformas.
Aspecto distinto según la plataforma.
Conjunto de componentes más extenso y con más características.
Precisa de algunas clases de AWT.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

3

3

Swing y AWT (III)

Una interfaz gráfica común va a tener tres elementos.

Un contenedor de primer nivel (JFrame, JDialog, JApplet)
Componentes de la interfaz gráfica (botones, etiquetas, campos de

texto, etc.).

Elementos para la gestión de eventos.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

4

4

Jerarquía de Swing

(Sólo se incluyen los componentes utilizados)

Object

Component

Container

Componentes AWT

Contenedores Swing de primer nivel

Contenedores Swing ligeros

Componentes Swing

JComponent

Panel

Window

JTextComponent

JLabel

JPanel

JComboBox

AbstractButton

Applet

Frame

Dialog

JTextField

JToogleButton

JButton

JApplet

JFrame

JDialog

JRadioButton

JCkeckBox

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

5

5

Ventana principal (I)

Una aplicación GUI se desarrolla sobre un marco.

Se hereda de la clase JFrame.
Sobre el marco se colocarán los distintos componentes de la interfaz.

import javax.swing.*;
public class MarcoPrueba{

public static void main(String args[]){

MiMarco marco = new MiMarco("Marco de prueba");
marco.setDefaultCloseOperation(
marco.show();

JFrame.EXIT_ON_CLOSE);

}
class MiMarco extends JFrame{

final int ALTO = 200;
final int ANCHO = 300;
MiMarco(String titulo){
setTitle(titulo);
setSize(ANCHO,ALTO);

}

}
}

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

6

6

Ventana principal (II)

El método main crea una instancia de la clase MiMarco.
El método showDefaultOperation indica una acción

predeterminada al cerrar la ventana.
Disponible a partir de la versión 1.3.
Su argumento puede tomar los valores DO_NOTIHG_ON_CLOSE,

HIDE_ON_CLOSE o EXIT_ON_CLOSE.

El método show() permite mostrar el marco.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

7

7

Ventana principal (III)

MiMarco hereda de la clase JFrame.
Su constructor por omisión crea una ventana sin título de

un tamaño de 0 por 0 pixels.

El método setTitle() permite establecer el título de la

ventana.

El método setSize() crea el marco con el tamaño

deseado.
El marco también se puede crear con setVisible(true).
O con pack().

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

8

8

Ventana principal (IV)

Algunos métodos de JFrame y sus superclases.

Constructores
JFrame()
JFrame(String título)
Métodos
setTitle(String título)
setSize(int alto, int ancho)
setLocation(int x, int y)
setBounds(int x,int y,int ancho,int alto)
setResizable(boolean opc)
show()
hide()
dispose()

pack()

setVisible(boolean opc)

Constructor que crea un marco sin título
Constructor que crea un marco con el título indicado

Establece el título de la ventana.
Establece el ancho y el alto de la ventana.
Sitúa el marco en la posición x, y.
Sitúa en la posición x, y con un ancho y un alto determinado.
Establece si el marco se puede redimensionar. Por omisión es true.
Muestra el marco y sus componentes
Esconde el marco y sus componentes
Descarga todos los recursos del sistema necesarios para mostrar el marco
Muestra la ventana y coloca sus componentes. Necesario se se realiza
una redimensión de la ventana o se modifican sus componentes
Establece si el marco es visible. setVisible(true) es equivalente a show()

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

9

9

Otros contenedores de primer nivel

Existen otros contenedores: JDialog y JApplet.
JAppet se utiliza para la realización de applets (siguiente

capítulo).
JDialog.

Contenedor de primer nivel dependiente de una ventana principal.
Su constructor precisa indicar la ventana propietaria (por ejemplo,

una referencia a un objeto JFrame)
JDialog diag = new JDialog(MiMarco,”Diálogo de prueba”);

Diálogos modales.

JDialog diag = new JDialog(MiMarco,”Diálogo de prueba”,true);

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

10

10

Estructura de un JFrame

Varios paneles dispuestos en capas

JFrame

JRootPane
JLayeredPane

JMenuBar (opcional)

ContentPane

GlassPane

JRootPane.

Sobre él residen los demás.

JLayeredPane.

Eje Z.

GlassPane.

Panel transparente que está

por encima de los demás.

JMenuBar.
ContentPane.

En él se suelen situar los

componentes.

Es sobre el que se trabaja

habitualmente.

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

11

11

Añadir componentes

JFrame es un contenedor donde colocar componentes.
Los componentes se sitúan sobre un panel.

Puede ser un objeto de la clase JPanel o directamente sobre el

ContentPane.

Para obtener el panel de contenido se utiliza el método

getContentPane().

Container panelContenido = getContentPane();

Es posible establecer un componente como panel de contenido con el

método setContentPane().

setContentPane(new JLabel(“Etiqueta de prueba”));

Pero normalmente los componentes se añaden con el método add().

panelContenido.add(new JLabel(“Etiqueta de prueba”));

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

12

12

Gestores de posicionamiento

add() en un objeto JFrame añade el componente al final del panel

de contenido, sobreescribiendo los demás.

Para añadir más componentes se utiliza un gestor de posicionamiento

mediante la interfaz LayoutManager del paquete java.awt.
FlowLayout.
BorderLayout.
GridLayout.
BoxLayout.
GridBagLayout.

El posicionamiento se realiza de forma relativa, dependiendo del

tamaño del marco y de los componentes.

Para establecer el gestor de posicionamiento en un contenedor se

utiliza el método setLayout(LayoutManager mgr)donde mgr es
un objeto de alguna de las subclases anteriores.
getContentPane().setLayout(new FlowLayout())

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

13

13

FlowLayout (I)

Los componentes “fluyen” de izquierda a derecha, dejando, por

omisión, un espacio vertical y horizontal de 5 pixels entre sus
componentes.
Constructores

FlowLayout(int alineación)

Modifica la disposición de los componentes. Los valores
de alineación pueden ser FlowLayout.CENTER,
FlowLayout.RIGHT y FlowLayout.LEFT

FlowLayout(int alineación, int seph, int sepv)

Permite indicar la separación horizontal y vertical en
pixels

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

14

14

FlowLayout(II)

PruebasFrame(){

setTitle("JFrame de pruebas");
//Para un FlowLayout
getContentPane().setLayout(new FlowLayout());
getContentPane().add(new JButton("Botón 1"));
getContentPane().add(new JButton("Botón 2"));
getContentPane().add(new JButton("Botón 3"));
getContentPane().add(new JButton("Botón 4"));
getContentPane().add(new JButton("Botón 5"));
setSize(300,200);

}

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

15

15

BorderLayout (I)

Divide el contenedor en 5 zonas (NORTH, SOUTH, EAST, WEST y

CENTER) donde se añaden los componentes.
Por omisión se colocan en el centro.

Para añadir los componentes se utiliza el método

add(Component compt, int zona)
zona puede tomar los valores BorderLayout.CENTER,

BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.WEST
y BorderLayout.EAST.

Constructores

BorderLayout()
BorderLayout(int seph, int sepv)

Los componentes se colocan sin separación.
Los componentes se colocoan cun una separación
horizontal de seph pixel y vertical de sepv pixels

Universidad Pontificia de Salamanca (campus Madrid)
Facultad de Informática ©Luis Rodríguez Baena, 2003

16

16

BorderLayout (II)

PruebasFrame(){

setTitle("JFrame de pruebas");
//Para un BorderLayout
getContentPane().setLayou
  • Links de descarga
http://lwp-l.com/pdf18182

Comentarios de: Tema 6. Interfaces gráficas de usuario (Parte 1) - Programación en Java (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad