Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4- swing
JAVA 4. IU - Swing
import javax.swing.*;
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
Model
View
Controller
Acciones de usuario
Diseo de Interfaces de Usuario
ETSI Ingeniera Informtica. Universidad de Granada
4- swing
AbstractButton
JButton
.JToggleButton
JFrame JWindow
JComponent
.JTextComponent
JApplet
JLabel
JList
JComboBox
JMenuBar
JPane
JOptionPane
JScrollBar
JScrollPane
JFileChooser
JRootPane JTree
JPane JColorChooser
4- swing
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)
(1) (2)
(3) (4)
(5)
(6)
(7)
(8)
(9)
4- swing
Constructores:
JFrame(String); // titulo
Propiedades y mtodos:
setSize(int, int); setLocation(int_x; int_y); setVisible(boolean); pack(); // colocar add(Component...); setIconImage(ImageIcon);
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
4- swing
Texto presente en el componente Icono asociado al componente (gif, jpg) Texto alternativo (cursor sobre componente)
Estilo
4- swing
2. Etiquetas e Iconos
Aade componentes no interactivos al interfaz
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
4- swing
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
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)
10
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
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
11
4- swing
3.2. JButton
Control de pulsacin Puede contener iconos
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
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)
13
4- swing
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();
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
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
15
4- swing
4. Rangos (Valor)
Componentes para obtener un valor dentro de un rango La clase DefaultBoundedRangeModel define el estado del Componente
16
4- swing
4.1. DefaultBoundedRangeModel
Clase de define el estado (modelo)
DefaultBoundedRangeModel model = new DefaultBoundedRangeModel( ); model.setMaximum(10); model.setMinimum(0); model.setValue(3);
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
17
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);
18
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);
19
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
20
4- swing
5. Texto (I)
21
4- swing
Constructores:
Constructores:
JPasswordField(); JPasswordField(String, int);// n columnas TextField(String);
Propiedades y mtodos:
text, editable, columns
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)
22
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
23
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
24
4- swing
6.1 JList
Consta de tres partes: Modelo de datos (ListModel) Modelo de seleccin (ListSelectionModel) y Modelo de representacin (ListCellRenderer)
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
4- swing
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
4- swing
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
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
4- swing
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
4- swing
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();
30