Está en la página 1de 15

Diseo de Interfaces de Usuario

4- swing

JAVA 4. IU - Swing
import javax.swing.*;

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

1. Introduccin a Swing
Compuesto de componentes grficos ajustables y en los que el comportamiento (look-and-feel) se fija en tiempo de ejecucin (admite diferentes apariencias). Cerca de 250 componentes Extiende (no reemplaza) los componentes AWT (JButton, JPanel, JTextField) No se pueden/deben mezclar

Valor = 0, Mnimo = 0; Mximo = 10 Datos para visualizar

Model

View

Actualiza datos con Eventos recibidos

Determina los Eventos activos

Controller
Acciones de usuario
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

1.1 Swing: Jerarqua de componentes


JCheckBoxMenuItem JMenuItem JMenu JRadioButtonMenuItem JCheckBox JRadioButton JDialog

AbstractButton

JButton
.JToggleButton

JFrame JWindow

JComponent
.JTextComponent

JEditorPane JTextField JTextArea JPasswordField

JApplet

JLabel

JList

JComboBox

JMenuBar

JPane

JOptionPane

JScrollBar

JScrollPane

JFileChooser

JPopupMenu JProgressBar JInternalFrame

JSeparator JToolBar JToolTip

JSlider JSplitPane JLayeredPane

JTabbedPane JTable JTableHeader

JRootPane JTree

JPane JColorChooser

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

1.2. Swing: Jerarqua de componentes en JBuilder


JCheckBoxMenuItem

JMenuItem AbstractButton JButton


(1)

JRadioButtonMenuItem JMenu JCheckBox JRadioButton


(4) (2)

JToggleButton (3)
JComponent

JEditorPane
JTextComponent

(9)

JTextField JTextArea

(6) (7)

JPasswordField

(10)

JLabel

(5)

JComboBox

(11) (15)

JList JTree

(12) (16)

JSlider JTable

(13) (17)

JProgressBar (14) JScrollBar

(1) (2)

(3) (4)

(5)

(6)

(7)

(8)

(9)

(10) (11) (12) (13) (14) (15) (16) (17)


4
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

4- swing

1.3. Swing. Ventanas JFrame Descripcin:


Ventana dependiente de escritorio Posee decoracin, icono, y controles

Constructores:
JFrame(String); // titulo

Propiedades y mtodos:
setSize(int, int); setLocation(int_x; int_y); setVisible(boolean); pack(); // colocar add(Component...); setIconImage(ImageIcon);

Tamao pantalla: Dimension dim = getToolkit().getScreenSize();

import javax.swing.*; public class Ventana { public static void main(String[] args) { JFrame frame = new JFrame(Mi marco"); frame.setSize(400, 300); frame.setVisible(true); ImageIcon g=new ImageIcon("general.gif"); this.setIconImage(g.getImage()); } }
5
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

4- swing

1.4. Swing: Propiedades componentes


text icon toolTipText font background foreground doubleBuffered border preferredSize minimumSize maximumSize mnemonic
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

Texto presente en el componente Icono asociado al componente (gif, jpg) Texto alternativo (cursor sobre componente)

Estilo

Dibujo (grficos) Estilos de bordes del componente Ajuste de tamaos preferentes

Acceso alternativo por teclado (ALT+carcter C) comp.setMnemonic(C );


6
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

2. Etiquetas e Iconos
Aade componentes no interactivos al interfaz

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

2.1. JLabel
Texto y/o imagen no seleccionable en una lnea Control de la alineacin

Constructores:

LEFT|RIGHT|CENTER

Propiedades y mtodos:
String texto; Icon icono; int horizontalAlignment

JLabel(String text) JLabel(Icon icon) JLabel(String text, int alin_hor) JLabel(Icon icon, int alin_hor)

Mtodos
setText(String s); String getText(); setIcon(new ImageIcon(fich.gif")); setHorizontalAlignment(int); // LEFT, CENTER, RIGHT setVerticalAlignment(int); // TOP, CENTER, BOTTON

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

2.2. Iconos (ImageIcon) Descripcin:


Implementa clase abstracta Icon Visualiza imgenes .jpeg/.gif Mismo directorio que aplicacin Componentes -> mtodo setIcon
implements

Icon

ImageIcon

Constructores:
ImageIcon(String Fichero);

Propiedades y mtodos:
String texto; Icon icono; int horizontalAlignment

ImageIcon icono = new ImageIcon(ok.gif"); ... Icono.setImage(hola.gif); JLabel et = new Jlabel (icono);

Mtodos

setImage(String fichero); Image getImage();


9
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

4- swing

3. Botones
Componentes para capturar eventos generados por el usuario (por pulsacin). Pueden representar texto y/o iconos. La clase DefaultButtonModel define el estado del botn Se pueden agrupar (ButtonGroup)

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

10

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

3.1 DefaultButtonModel
Propiedad actionCommand enabled group mnemonic Tipo Dato
String boolean ButtonGroup int

get X

is

set X

Comentario Texto asociado al botn (para un ActionEvent) para el manejo de eventos Estado de Habilitado (debe estar habilitado para ser pulsado) Contenedor (si existe) del botn Tecla de atajo junto a la combinacin de tecla relativa al comportamiento del Look&Feel por defecto. Tecla definida mediante cdigo (p.e. KeyEvent.VK_A). Estado de pulsado Indica si el cursor est sobre el botn Indica si el botn est seleccionado

X X

pressed rollover selected Evento


ActionEvent ChangeEvent ItemEvent

boolean boolean boolean

X X X

X X X

Descripcin
El botn es presionado Ha sucedido algn cambio en las propiedades (el estado) del botn El botn permuta de pulsado a soltado

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

11

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

3.2. JButton
Control de pulsacin Puede contener iconos

Constructores: Propiedades y mtodos:


String texto; Icon icono; int mnemonic; jButton jb = new Jbutton(); jb.setIcon (new ImageIcon(a.jpg"); JButton(String text) JButton(Icon icon) JButton(String text, Icon icon)

Mtodos
setText(String); setIcon(Icon); setRolloverIcon(Icon); // muestra al estar encima del botn setDisabledSelectedIcon() setPressedIcon()
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

12

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

3.3. JToggleButton
Botn con estado (seleccionado/deseleccionado)

Constructores:
JToggleButton(String text) JToggleButton(Icon icon) JToggleButton(Icon icon, boolean selected);

Propiedades y mtodos:
bool getSelected() void setSelected (bool)

jToggleButton jtb = new JTogglebutton(); jtb.setSelected(true);

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

13

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

3.4 JCheckBox / JRadioButton


Control de pulsacin Puede contener iconos JToggleButton
extends

JCheckBox JRadioButton

Constructores:

JCheckBox/JRadioButton(String text [, boolean selec]) JCheckBox /JRadioButton(Icon icon [, boolean selec]) JCheckBox /JRadioButton(String text, Icon icon [, boolean selec] )

Propiedades y mtodos:
String texto; Icon icono; int mnemonico boolean selec

Mtodos
setText(String); setIcon(Icon); boolean isSelected() setSelected(boolean b)

boolean isSelected();

Emite un ItemEvent al cambiar de estado (ItemStateChanged)


Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

ItemEvent.SELECTED ItemEvent.DESELECTED)
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

14

4- swing

3.5. ButtonGroup
Agrupa un conjunto de JRadioButton Permite simular la Seleccin excluyente

Constructores:
ButtonGroup()

Propiedades y mtodos:
String texto; Icon icono; int mnemonico boolean selec

ButtonGroup bg1 = new ButtonGroup(); bg1.add(jRadioButton1); bg1.add(jRadioButton2);

Mtodos
add/remove(AbstractButton); // aade/quita botones setSelected(ButtonModel m, boolean b); boolean isSelected(ButtonModel m); // comprueba si est seleccionado boton int getButtonCount(); // nmero de botones

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

15

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

4. Rangos (Valor)
Componentes para obtener un valor dentro de un rango La clase DefaultBoundedRangeModel define el estado del Componente

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

16

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

4.1. DefaultBoundedRangeModel
Clase de define el estado (modelo)
DefaultBoundedRangeModel model = new DefaultBoundedRangeModel( ); model.setMaximum(10); model.setMinimum(0); model.setValue(3);

Propiedad extent maximum minimum value

Tipo int int Int int

Get X X X X

Set X X X X

V.Def 1 100 0 0

Descripcin Extensin (tamao) del deslizador Valor mximo del rango Valor mnimo del rango Valor actual

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

17

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

4.2. JScrollBar
Componentes para obtener un valor dentro de un rango

Constructores:
JScrollBar()

Propiedades y mtodos:
String texto; Icon icono; int mnemonic; boolean selecc; ButtonGroup bg1 = new ButtonGroup(); bg1.add(jRadioButton1); bg1.add(jRadioButton2);

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

18

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

4.3. JProgressBar
Barra para medir el progreso (grado de acabado) de un suceso

Constructores:
JProgressBar( ) // Barra progreso horizontal JProgressBar(int orient, int min, int max) JProgressBar(int min, int max) JProgressBar(int orient)

Propiedades y mtodos:
int orientation; // JProgressBar.HORIZONTAL|VERTICAL setString(String s); // mostrar en el progreso setStringPainted(boolean b); JProgressBar pbar; pbar.setMinimum(0); pbar.setMaximum(100); pbar.value(35); pbar.setString(35%); pbar.setStringPainted(true);

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

19

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

4.4. JSlider
Barra para medir el valor en un rango Se puede personalizar el estilo del deslizador y las marcas

Constructores:
JSlider(); JSlider(int orientation) JSlider(int min, int max); JSlider(int min, int max, int value); JSlider(int orientation, int min, int max, int value);

Propiedades y mtodos:
int orientation; // JSlider.HORIZONTAL|VERTICAL setMajorTickSpacing(int n ) // marca cada n valores setMinorTickSpacing(int n ) // distancia de marcas pequeas setPaintTicks( boolean ) // dibujar las marcas setValue(int) // Valor del deslizador setPaintLabels (boolean) // mostrar etiquetas JSlider s; s.setMinimum(0); s.setMaximum(20); s.setValue(4); s.setMajorTickSpacing(5); s.setMinorTickSpacing(1); s.setPaintTicks(true); s.setPaintLabels(true);
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

20

4- swing

5. Texto (I)

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

21

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

5.1. JTextField / JPasswordField


Texto editable (una lnea) Contrasea (una lnea)

Constructores:

Constructores:
JPasswordField(); JPasswordField(String, int);// n columnas TextField(String);

Propiedades y mtodos:
text, editable, columns

JTextField(); JTextField(String, int); // n columnas JTextField(String);

Propiedades y mtodos:
Mtodos
setPassword(String); setEchoChar(char) // carcter setColumns(int) // n columnas boolean echoCharIsSet();

Mtodos
setText(String); setColumns(int) // n columnas setEditable(boolean editable)

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

22

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

5.2. JTextArea
Entrada de texto (filas y columnas)

Constructores:
JTextArea(String t, int n_fila, int n_col);

Propiedades y mtodos:
text, editable, columns, rows lineCount

Mtodos
setText(String); String getSelectedText(); insert(String s, int pos); // inserta texto en pos. replaceRange(String s, int inicio, int fin) // sustituye texto en el rango append(String s); // aade al final

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

23

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

6. Eleccin
Componentes que permiten elegir una opcin entre una serie de alternativas Se permite seleccin simple/mltiple El modo de seleccin mltiple depende del Look&Feel (Shift, Crtl...) JList JComboBox

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

24

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

6.1 JList
Consta de tres partes: Modelo de datos (ListModel) Modelo de seleccin (ListSelectionModel) y Modelo de representacin (ListCellRenderer)

Propiedad selectionMode VisibleRowCount selectedIndex Model

Tipo int int Int ListModel

Get X X X X

Set X X X X

Descripcin Modo (MULTIPLE_INTERVAL_SELECTION) Nmero de columnas visibles Devuelve el ndice del tem seleccionado Asocia un modelo de datos a la lista
25
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

4- swing

6.1 JList Descripcin:


Lista de elementos (para seleccin) Admite diferentes modos de seleccin No dispone de barra de desplazamiento (scroll) automticamente (se debe insertar en un panel JScrollPane Listas sencillas (tamao fijo) o variables (ListModel)

Constructores:
JList (Octect[] elementos); // array de (String) elementos para visualizar JList (ListModel modelo); // modelo de datos complejos

Propiedades y mtodos:
String texto; Icon icono; int modo; // SINGLE_SELECTION, // SINGLE INTERVAL_SELECTION, MULTIPLE_INTERVAL_SELECTION void setVisibleRowCount (int filas); // columnas visibles void setSelectionMode(int modo); // modo seleccin
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

26

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

6.2 ListModel/DefaultListModel Descripcin:

implements

Constructor:

ListModel DefaultListModel Lista de elementos (para seleccin) Adecuado para: listas largas, cambiantes, de objetos, etc. public interface ListModel { Control para el manejo de la lista (Interfaz ListModel) public int getSize(); Existe una implementacin predefinida (DefaultListModel) public Object getElementAt(int pos); }
void addElement(object o); // aade elemento al final de la lista void removeElement(object o); // elimina la primera ocurrencia del objeto en la lista removeAllElements();

Propiedades y mtodos:
String texto; Icon icono; int modo; // SINGLE_SELECTION, // SINGLE INTERVAL_SELECTION, MULTIPLE_INTERVAL_SELECTION void setVisibleRowCount (int filas); // columnas visibles void setSelectionMode(int modo); // modo seleccin
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

27

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

6.3 JComboBox
Combinacin de entrada de texto con lista desplegable El primer elemento aparece como seleccionado (ndice 0)

ComboBoxModel extiende ListBoxModel para permitir una nica seleccin MutableComboBoxModel permite listas editables
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

28

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

6.3 JComboBox Descripcin:


Combinacin de entrada de texto con lista desplegable Posee ScrollBar automtico El primer elemento aparece como seleccionado (ndice 0)

Constructor:
public JComboBox(); public JComboBox(ComboBoxModel aModel); public JComboBox(Object items[]); //array de elementos

Propiedades y mtodos:
int getSelectedItem(); // seleccin actual void setMaximumRowCount( int n ) // nmero de elementos a mostrar en el combo int getItemCount(); // contabilizar n de elementos void setEditable(boolean ); // si permite realizar cambios en la lista

Propiedad selectedItem
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada

Tipo int

Get X

Set X

Descripcin Slo admite una seleccin


29
Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

4- swing

6.3 ComboBoxModel/ DefaultComboBoxModel Descripcin:


Modelo para representar los datos de un JComboBox Permite edicin

Constructor:
public DefaultComboBoxModel( ); public JComboBox(Vector items);

Mtodos:

JComboBox c = new JComboBox(); DefaultComboBoxModel m = new DefaultComboBoxModel(); m.addElement((String) "Granada"); m.addElement("Jan"); c.setModel(m); c.setEditable(true);

void addElement(object o); // aade elemento al final de la lista public void insertElementAt(Object obj, int index); // en una posicin void removeElement(object o); // elimina la primera ocurrencia del objeto en la lista removeAllElements();

Diseo de Interfaces de Usuario


ETSI Ingeniera Informtica. Universidad de Granada

30

Miguel Gea y Fco. Luis Gutirrez Dpt. Lenguajes y Sistemas Informticos

También podría gustarte