Java Swing
Java Swing
Yamil Lambert
Contenido
El JFC y Swing 1.
Swing y AWT 2.
Editores 3.
Clases del Paquete 4.
Yamil Lambert
El JFC y Swing
Java Foundation Classes,
Construir interfaces grficas de usuario (GUI).
Los componentes Swing Incluye todo en diseos para
GUI y clases adicionales a los del AWT
Soporte de Aspecto y Comportamiento
API de Accesibilidad (lectores de pantalla y display
Braille)
Java 2D API (slo JDK 1.2 y superior)
Drag and Drop (slo JDK 1.2 y superior)
Yamil Lambert
Versiones del API Swing
Versiones
JDK 1.2
JFC 1.1 (para usar con JDK 1.1)
Es ms sencillo usar JDK 1.2 o
superior porque esta incluido
Yamil Lambert
Versiones Swing, JFC y JDK
Informacin de Paquetes y Clases:
http://java.sun.com/products/jfc/swingdoc-api-1.1/
Yamil Lambert
Paquetes de Swing
El API Swing es poderoso y flexible
La versin JFC 1.1 tiene 15 paquetes pblicos
La mayora de los programas slo usan un subconjunto
de este API.
Paquetes de Implementacin:
javax.swing
javax.swing.event (no siempre es necesario)
Yamil Lambert
Diferencias entre Swing y AWT
AWT estn proporcionados por las plataformas JDK 1.0 y
1.1.
El JDK 1.2 todava soporta componentes AWT.
La clase button del AWT es Button, y la clase buttn de
Swing es JButton. (Letra J)
AWT su paquete es java.awt y Swing esta en el paquete
javax.swing.
Swing esta implementa sin nada de cdigo nativo.
Swing tiene ms funcionalidad que los componentes
AWT pero se complementan en muchos casos
Yamil Lambert
Ventanas o Marcos
Las ventanas o Marcos nos ofrece una serie de
propiedades, mtodos y eventos.
Una ventana se puede considerar como un soporte
donde colocar objetos de controles.
Los objetos de controles son los que se encargan de
recoger las acciones del usuario.
Para una aplicacin primero diseamos una serie de
ventanas o marcos que contengan aquellos
controles para el ingreso de datos
Existen 2 tipos bsicos de ventanas o Marcos
SDI (Interface de documento simple)
MDI (Interface de documentos mltiple)
Yamil Lambert
Marcos y la Clase JFrame
Nos permite implementar
ventanas SDI
El paquete es javax.swing.JFrame
Para crear una ventana hay que
extender de la Clase JFrame
Yamil Lambert
La clase JFrame
Propiedades Importantes:
setTitle(Titulo)
getTitle()
setCursor(new Cursor)
getCursor()
setEnabled(true/false)
show()
setVisible(true/false)
setResizable(true/false)
setLocation(x,y) (Left/Top)
getLocation()
setSize(Ancho,Alto)
getSize()
setIconImage(image)
getIconImage()
setLayout(null)
Mtodos:
add(Obj)
getContentPane()
Yamil Lambert
Eventos de JFrame
De ventana:
Mtodo: addWindowListener
windowClosing System.exit(0)
windowOpened
windowClosed
windowIconified (Min)
windowDeiconified (ResMin)
windowActivated
windowDeactivated
De mouse:
Mtodo: addMouseListener
mouseClicked
mouseExited
mouseEntered
De teclado:
Metodo: addKeyListener
keyTyped
keyPressed
keyReleased
Yamil Lambert
Prctica #1
Realizar una Ventana tipo SDI
Implemente algunas propiedades
antes mencionadas
Implemente el manejo de eventos
para las ventana , el Mouse y el
teclado
Yamil Lambert
MDI - JInternalFrame
Interface de documentos mltiple
Los Sistemas o aplicaciones grandes pueden
tener muchas Ventanas
La ventana principal es de la clase JFrame
Las ventanas hijas son de la clase
JInternalFrame
Se necesita la clase JDesktopPane y el
mtodo getContentPane() para agregarlo
Organiza la llamada de los formularios SDI
Deber extender de JInternalFrame
Yamil Lambert
La clase JInternalFrame
Propiedades Importantes:
setTitle(Titulo)
getTitle()
show()
setLocation(x,y) (Left/Top)
getLocation()
setSize(Ancho,Alto)
getSize()
setClosable(boolean)
setIconifiable(boolean)
setMaximizable(boolean)
setResizable(boolean)
setBackground(new Color(rgb))
getBackground()
setFrameIcon(new ImageIcon)
getFrameIcon()
setAutoscrolls(boolean)
getAutoscrolls()
Mtodos:
add(Obj)
getContentPane()
Yamil Lambert
Eventos de JInternalFrame
De ventana:
Mtodo: addInternalFrameListener
internalFrameOpened
internalFrameClosing
internalFrameClosed
internalFrameIconified
internalFrameDeiconified
internalFrameActivated
internalFrameDeactivated
No tiene Adaptador
De mouse:
Mtodo: addMouseListener
mouseExited
mouseEntered
De teclado:
Metodo: addKeyListener
keyTyped
keyPressed
keyReleased
No tiene implementacin
Yamil Lambert
Prctica #2
Realizar una Ventana tipo MDI
Implemente algunas propiedades antes mencionadas
Implemente el manejo de eventos para las ventanas
MDI y SDI con el Mouse y el teclado
Yamil Lambert
La Barra de Men
Construccin de los mens de la aplicacin.
Organizar la llamada de los formularios SDI
Organizar las opciones de un sistema por categora o orden
Su construccin es a travs de la clase JMenuBar
JMenuBar trabaja con las siguientes clases:
JMenu
JMenuItem
JSeparator
JCheckBoxMenuItem
JRadioButtonMenuItem
ButtonGroup
JFrame agrega el men con setJMenuBar(JMenuBar)
Yamil Lambert
Atributos - Barra de Men
JMenuBar
setVisible(boolean)
setBackground(new Color)
getMenuCount()
JMenu
setText(Archivo)
getText()
setMnemonic(KeyEvent)
setBackground(new Color)
setEnabled(boolean)
JMenuItem
setText(Archivo)
getText()
setMnemonic(KeyEvent)
setBackground(new Color)
setAccelerator(Ejemplo) ALT/CTR/SHIFT
setIcon(new ImageIcon)
setEnabled(boolean)
JSeparator
JMenu.addSeparator()
JCheckBoxMenuItem
setText(Archivo)
getText()
setEnabled(booelan)
setState(boolean)
getState()
setSelected(boolean)
setIcon(new ImageIcon)
JRadioButtonMenuItem
setText(Archivo)
getText()
setSelected(boolean)
Yamil Lambert
Eventos de las tems en un Men
AddActionListener
actionPerformed
Los eventos de las clase para un menu son
controladas por el evento actionPerformed
equivalente al Click.
Es el nico de AddActionListener por lo tanto no
necesita adaptador.
Yamil Lambert
Prctica #3
Realizar una Ventana
JFrame
Agregar el siguiente
Men de Opciones
Yamil Lambert
La clase JLabel
Conocida como etiqueta
Presentar informacin
Propiedades
setText()
getText()
setFont(new Font)
setForeground(Color)
setBounds(X,Y,Ancho, Alto)
setEnabled(boolean)
Eventos
No tiene implementacin a
eventos
Yamil Lambert
La clase JTextField
Conocida como caja texto
Ingreso de datos
Propiedades
setText()
getText()
setBackground(Color)
setForeground(Color)
setEditable(boolean)
setEnabled(boolean)
setVisible(boolean)
setFont(new Font)
setToolTipText()
setBounds(X,Y,Ancho, Alto)
Eventos : addKeyListener
keyPressed
keyTyped
keyReleased
Yamil Lambert
La clase JButton
Conocida como Botn
Confirma la ejecucin de procesos
Propiedades
setText()
getText()
setFont(new Font)
setBackground(Color)
setForeground(Color)
setIcon(new ImageIcon)
setRolloverIcon(new ImageIcon)
setMnemonic(Character)
setBounds(X,Y,Ancho, Alto)
Eventos : addActionListener
actionPerformed (Click)
Yamil Lambert
La Clase JCheckBox
Conocida como Casilla de verificacin
Presenta dos estado
Usada para Alternativas Mltiples
Propiedades
setText()
getText()
setSelected(boolean)
setBounds(X,Y,Ancho, Alto)
isSelected()
Eventos : addActionListener
actionPerformed (Click)
Yamil Lambert
La Clase JRadioButton
Conocida como botn de opcin
Usada para Alternativas
Un solo botn se debe seleccionar
Utiliza la clase ButtonGroup
Propiedades
setText()
getText()
setSelected(boolean)
setBounds(X,Y,Ancho, Alto)
isSelected()
Eventos : addActionListener
actionPerformed (Click)
Yamil Lambert
Prctica # 4
Implemente todas las
clase de controles
Diseo la siguiente
ventana
Al dar click en aceptar
informe lo que el usuario
ingreso
Yamil Lambert
La Clase JPasswordField
Conocida como caja texto de contrasea
Ingreso de Claves
Propiedades
setText()
getText() getPassword()
setEditable(boolean)
setEnabled(boolean)
setVisible(boolean)
setToolTipText()
setEchoChar(*');
setBounds(X,Y,Ancho, Alto)
Eventos : addKeyListener
keyPressed
keyTyped
keyReleased
Yamil Lambert
La Clase JTextArea & JScrollPane
Conocida como caja de texto multilnea
Ingreso de bastante informacin por parte
del usuario.
Propiedades
setText()
getText()
setLineWrap(boolean);
setEditable(boolean)
setEnabled(boolean)
setVisible(boolean)
setToolTipText()
setBounds(X,Y,Ancho, Alto) (Explicar)
Eventos : addKeyListener
keyPressed
keyTyped
keyReleased
JScrollPane
Para Agregar las barra de
desplazamiento
Complementa a JTextArea
Propiedades
new JScrollPane(txt_Comentario)
setBounds(X,Y,Ancho, Alto)
Yamil Lambert
La Clase JComboBox
Conocido como caja de lista tipo Combo
Alternativas Mltiples
Propiedades
new JComboBox(Strings[])
addItem(String)
setToolTipText(String)
setSelectedIndex(Index) Empieza de 0
getSelectedIndex()
getSelectedItem()
setBounds(X,Y,Ancho, Alto)
Eventos : addActionListener
actionPerformed (Click)
Yamil Lambert
La Clase JList & DefaultListModel
Conocido como caja de lista
Propiedades
setSelectedIndex(Index)
getSelectedIndex()
getSelectedValue()
setBackground(Color)
setFont(Font)
setForeground(Color)
setEnabled(boolean)
setVisible(booelan)
setSelectionMode(ListSelectionModel)
DefaultListModel
addElement(String)
remove(index)
clear()
insertElementAt(string, Index)
getSize()
Yamil Lambert
Prctica # 5
Realizar el diseo
propuesto
Obtenga los datos del
usuario y presentarlos
por consola
Yamil Lambert
Prctica # 6
Yamil Lambert
La Clase JTable
Con la clase JTable, se pueden mostrar tablas de datos
Opcionalmente permitir que el usuario los edite.
JTable no contiene ni almacena datos
Es simplemente vista de nuestros datos.
Yamil Lambert
La Clase JTable & Object[][]
Permite el Ingreso de Datos Fijos
Las Columnas se manejan como String
Los datos como un arreglo de Object
En la Creacin se envian los datos y las columnas
new JTable(datos, Columnas)
Cambios a las Columnas:
getColumnModel().getColumn(#).setPreferredWidth(Ancho)
Para incorporar un Scroll utilizar JScrollPane
Posicionar JTable con el mtodo de JScrollPane
setBounds(X,Y,Ancho,Alto)
Yamil Lambert
JTable & DefaultTableModel
java.lang.Object
javax.swing.table.AbstractTableModel
javax.swing.table.DefautTableModel
Es el modelo de tabla predeterminado que facilita mucho el trabajo
con tablas
addColumn(String)
addRow(Nueva Fila[])
setValueAt(String, fila, columna)
getValueAt(Fila,Columna)
getColumnCount()
getRowCount()
Yamil Lambert
JPanel & JTabbedPane
JPanel
Un panel permite agrupar otros controles
de Swing
El uso es para agrupar informacin comn
Parecido a un Frame (No formulario) en
VB
Bordes Disponibles
JTabbedPane
Agrupar Controles por pestaas o Tabs
El uso es para agrupar informacin
diferente a un universo informacin
comn
Ver implementacin
Yamil Lambert
La clase JOptionPane
Mtodos
showMessageDialog.- Mostrar Mensajes
showConfirmDialog.- Preguntar al usuario
showInputDialog.- Pedir informacin el usuario
showOptionDialog.- personalizar el dialogo que agrupa a los 3
anteriores
Iconos para los Mensajes
JOptionPane.PLAIN_MESSAGE
JOptionPane.INFORMATION_MESSAGE
JOptionPane.QUESTION_MESSAGE
JOptionPane.WARNING_MESSAGE
JOptionPane.ERROR_MESSAGE
Formato:
showMessageDialog(null,Mensaje,Titulo,Icono)
Yamil Lambert
JOptionPane showConfirmDialog
Botones
JOptionPane.DEFAULT_OPTION
JOptionPane.YES_NO_CANCEL_OPTION
JOptionPane.OK_CANCEL_OPTION
JOptionPane.YES_NO_OPTION
Datos de retorno
JOptionPane.YES_OPTION
JOptionPane.NO_OPTION
JOptionPane.CANCEL_OPTION
JOptionPane.OK_OPTION
JOptionPane.CLOSED_OPTION
Formato:
showConfirmDialog(null,Mensaje,Titulo,botones)
Yamil Lambert