Vous êtes sur la page 1sur 47

Interfaz Grfica de

Usuario (SWING) en Java


Ariel Jose Arnedo Cervantes

Estudiante Universidad de Cartagena
Qu es la Interfaz Grfica de Usuario?
Una interfaz grfica de usuario (GUI) es una interfaz de usuario en la
que se hace uso de un entorno grfico. Es decir, permite la
interaccin del usuario con el ordenador mediante la utilizacin de
imgenes, objetos pictricos (ventanas, iconos, botones, etctera),,
y a travs de ellos el usuario puede interactuar con la aplicacin.
adems de texto. GUI es un acrnimo del vocablo ingls Graphical
User Interface.
JFC (SWING)
Java proporciona una biblioteca de clases denominada JFC (Java Foundation Clases
clase base de Java). La cual agrupa las siguientes interfaces para la programacin
de aplicaciones:
AWT (Abstract Window Toolkit kit de herramientas de ventanas abstractas)
Conjunto de componentes para diseo de interfaces graficas de usuario.
Swing. Conjunto de componentes para diseo de interfaces graficas de usuario,
derivados de AWT
Java 2D. Ofrece grficos de 2D de alta calidad, texto e imgenes.
Entre otras.

AWT vs Swing
La diferencia bsica entre la AWT y Swing es que cada componente AWT tiene asociado su
propio recurso nativo de ventana, es decir que estos tiene dependencia de la plataforma en
donde est instalado la JVM, por usar en su implementacin cdigo nativo, en consecuencia
las aplicaciones cuya interfaz grfica se base en la AWT, requerir un mayor consumo
recursos de memoria del computador, por esta razn se les atribuyo el calificativo de
Pesados. Los componentes Swing a diferencia de los AWT estn escritos en Java, lo que los
hace independientes de plataforma e influye en un menor consumo de recursos, razn por la
cual a estos componentes se le atribuyo en calificativo de ligeros.
Componentes Grficos de Swing ms comunes
Etiquetas: se implementan a partir de clase JLabel
Botones: se implementan a partir de la clase JButton
Cajas de Texto: se implementan a partir de la clase JTextField las de una solo lnea de
texto, y a partir de JTextArea las de varias lneas.
Casillas de verificacin: son proporcionadas por la clase JCheckBox, o por la clase
JCheckBoxMenuItem para uso en mens (JMenu, JPopupMenu).
Botones de opcin: proporcionados por la clase JRadioButton, o por la clase
JRadioButtonMenuItem para uno de mens (JMenu, JPopupMenu).
Listas simples: se implementan a partir de la clase JList.
Barras de desplazamiento: proporcionadas por la clases JScrollBar.
Tablas: se implementan a partir de la clase JTable.



Componentes Swing
Todos los componentes Swing derivan de la clase JComponent (en Swing), que a su
vez es subclase de la clase Componet (en AWT), lo que pone en manifiesto de que
Swing de deriva de AWT.

Ventanas
Las ventanas son elementos encargados de albergar a otros y que, generalmente,
se pueden mover libremente por la pantalla. Existen diferentes tipos en base a su
uso y caractersticas. En java se conocen como contenedores de alto nivel, estos se
implementan por las clases JFrame, JWindow, JDialog y JApplet. Estos estos define
un panel denominado panel de raz, se trata de un panel de contenido que permite
ubicar, adems de controles otros paneles.
Ventanas de Aplicacin (JFrame)
Las ventanas de aplicacin son aquellas que contienen a todos los elementos de
una aplicacin. Tiene barra de ttulos y botones que permiten su manipulacin, se
puede visualizar en cualquier parte del escritorio. En java las ventanas en aplicacin
son proporcionadas por la clase JFrame, que es subclase de la clase Frame, clase
hija java.awt.Window. Cuando se crea un objeto JFrame se crea automticamente
un panel de raz, el cual puede ser obtenido por el mtodo getContentPane(), que
retorna un objeto JRootPane (panel del raz).
Mtodos importantes de la clase JFrame
public JFrame() - Construye una ventana inicialmente invisible.
public JFrame( String title) - Construye una ventana inicialmente invisible con el
ttulo indicado.
public void setTitle( String title) Establece el ttulo de la ventana.
public void setSize(int ancho, int alto) Establece el tamao en pxeles de la
ventana.
public void setDefaultCloseOperation(int operacin) Establece la operacin que
se ha de realizar cuando el usuario cierra la ventana. Los valores permitidos
vienen determinados por las siguientes constantes:
setLocation(int , int) - fija la posicin de la ventana con respecto a
Mtodos importantes de la clase JFrame
javax.swing.JFrame.EXIT_ON_CLOSE - Finaliza la ejecucin de la aplicacin.
javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE - No hace nada.
javax.swing.WindowConstants.HIDE_ON_CLOSE - Oculta la ventana (por defecto)
javax.swing.WindowConstants.DISPOSE_ON_CLOSE Libera los recursos de la
ventana, pero no finaliza la ejecucin del programa.
public void setResizable(boolean resizable) Establece si el usuario puede
cambiar el tamao de la ventana. Por defecto es true.
public void setExtendedState(int state) Establece el estado de la ventana.
Puede no funcionar en algunas plataformas. Este mtodo ha de invocarse cuando
la ventana sea visible. Los valores permitidos vienen dados por las constantes:

Mtodos importantes de la clase JFrame
java.awt.Frame.NORMAL No se encuentra ni minimizada ni maximizada.
java.awt.Frame.ICONIFIED Minimizada.
java.awt.Frame.MAXIMIZED_BOTH - Maximizada.
java.awt.Frame.MAXIMIZED_HORIZ Maximizada horizontalmente.
java.awt.Frame.MAXIMIZED_VERT Maximizada verticalmente.
public void setVisible(boolean b) Muestra u oculta la ventana. Segn el valor de
b.
Contenedores o Paneles
Los contenedores son componentes utilizados para ubicar otros componentes.
Como ya se mencion los contenedores de alto nivel, tiene un panel de raz, los
que no son de nivel intermedio, su propsito es simplificar la colocacin de
controles, estos son implementados por las clases JPanel, JScrollPane, JSplitPane,
JTabbedPane. El ms comn es el JPanel, se utiliza el mtodo add() para aandir
controles y otros paneles al objeto JPanel (panel.add(componente); ) .
JButton
Un botn es un componente en el que el usuario hace clic para desencadenar una
accin especfica (genera un evento ActionEvent).
Al texto en la cara de un objeto JButton se le llama etiqueta del botn. Tener ms
de un objeto JButton con la misma etiqueta hace que los objetos JButton sean
ambiguos para el usuario (cada etiqueta de botn debe ser nica).
Un objeto JButton puede mostrar objetos Icon, esto proporciona un nivel adicional
de interactividad visual. Tambin puede tener un objeto de sustitucin, que es un
objeto Icon que aparece cuando el ratn se posiciona sobre el botn; el icono en el
botn cambia a medida que el ratn se aleja y se acerca al rea del botn en la
pantalla.
Mtodos y constructores de clase JButton
JButton()
JButton(String ttulo)
JButton(Icon icono)
JButton(String ttulo, Icon icono)
Los constructores crean un ejemplar de JButton, lo inicializa para tener el
texto/imagen especificado.
Mtodos y constructores de clase JButton
void setText(String) - selecciona el texto mostrado en el botn.
String getText()- obtiene el texto mostrado en el botn.
void setIcon(Icon) Selecciona u obtiene la imagen mostrada por el botn cuando no est
seleccionado o pulsado.
Icon getIcon()- obtiene la imagen mostrada por el botn cuando no est seleccionado o
pulsado.
void setDisabledIcon(Icon)- Selecciona la imagen mostrada por el botn cuando est
desactivado. Si no se especifica una imagen, el aspecto y comportamiento crea una por
defecto.
Icon getDisabledIcon()- obtiene la imagen mostrada por el botn cuando est
desactivado. Si no se especifica una imagen, el aspecto y comportamiento crea una por
defecto.

Mtodos y constructores de clase JButton
void setPressedIcon(Icon)-Seleccin la imagen mostrada por el botn cuando est
pulsado.
Icon getPressedIcon()- obtiene la imagen mostrada por el botn cuando est pulsado.
o void setSelectedIcon(Icon)
o Icon getSelectedIcon()
o void
o setDisabledSelectedIcon(Icon)
o Icon getDisabledSelectedIcon()
Selecciona u obtiene la imagen mostrada por el botn cuando est seleccionado. Si no se
especifica una imagen de botn desactivado seleccionado, el aspecto y comportamiento
crea una manipulando la imagen de seleccionado.
Mtodos y constructores de clase JButton
o setRolloverEnabled(boolean)
o boolean getRolloverEnabled()
o void setRolloverIcon(Icon)
o Icon getRolloverIcon()
o void setRolloverSelectedIcon(Icon)
o Icon getRolloverSelectedIcon()
Utiliza setRolloverEnabled(true) y setRolloverIcon(Icon) para hacer que el botn
muestre el icono especificado cuando el cursor pasa sobre l.
Mtodos y constructores de clase JButton
void setMnemonic(char)- Selecciona la tecla alternativa para pulsar el botn.
char getMnemonic()- obtiene la tecla alternativa para pulsar el botn.
void setMargin(Insets)- Selecciona el nmero de pxeles entre el borde del botn
y sus contenidos.
Insets getMargin()- obtiene el nmero de pxeles entre el borde del botn y sus
contenidos.
void setFocusPainted(boolean) Selecciona si el botn debera parecer diferente
si obtiene el foco.
boolean isFocusPainted()- obtiene un boolean que indica si el botn tiene el foco.

JCheckBox y JCheckBoxMenuItem
La versin Swing soporta botones checkbox con la clase JCheckBox. Swing tambin
soporta checkboxes en mens, utilizando la clase JCheckBoxMenuItem. Como
JCheckBoxMenuItem y JcheckBox descienden de AbstractButton, los checkboxes de
Swing tienen todas las caractersticas de un botn normal .
Los checkboxes son similares a los botones de radio, pero su modelo de seleccin:
ninguno, alguno o todos, pueden ser seleccionados. Sin embargo en un grupo de
botones de radio, solo puede haber uno seleccionado.
Mtodos y Constructores
Las clases JCheckBox y JCheckBoxMenuItem tiene las mismas caractersticas de un JButton,
pues ambos son subclases de abstractButton.
JCheckBox(String)
JCheckBox(String,boolean)
JCheckBox(Icon)
JCheckBox(Icon,boolean)
JCheckBox(String,Icon)
JCheckBox(String,Icon,boolean)
JCheckBox()
Mtodos y Constructores
Los constructores anteriores crean un ejemplar de JCheckBox. El argumento String
especfica el texto, si existe, que el checkbox debera mostrar. De forma similar, el
argumento Icon especfica la imagen que debera utilizarse en vez de la imagen por
defecto del aspecto y comportamiento. Especificando el argumento booleano
como true se inicializa el checkbox como seleccionado. Si el argumento booleano
no existe o es false, el checkbox estar inicialmente desactivado.
Mtodos y Constructores
JCheckBoxMenuItem(String)
JCheckBoxMenuItem(String,boolean)
JCheckBoxMenuItem(Icon)
JCheckBoxMenuItem(String,Icon)
JCheckBoxMenuItem(String,Icon, boolean)
JCheckBoxMenuItem()
Crea un ejemplar de JCheckBoxMenuItem. Los argumentos se interpretan de la
misma forma que en los constructores de JCheckBox.
JRadioButton y JRadioButtonMenuItem
Los Botones de Radio son grupos de botones en los que, por convencin, slo uno
de ellos puede estar seleccionado. Swing soporta botones de radio con las clases
JRadioButton y ButtonGroup. Para poner un botn de radio en un men, se utiliza
la clase JRadioButtonMenuItem. Otras formas de presentar una entre varias
opciones son los combo boxes y las listas.
Como JRadioButton desciende de AbstractButton, los botones de radio Swing
tienen todas las caractersticas de los botones normales. Los mtodos de
AbstractButton que ms se utilizan son setMnemonic, addItemListener,
setSelected, y isSelected.

JList (Lista Simple)
Un lista es un componente derivado de la clase JList que dispone un conjunto de
elementos al usuario y que elegir solo uno de ellos. Si la cantidad de elementos
sobrepasa los que pueden ser visualizados aparecer automticamente una barra
de desplazamiento (JScrollBar) vertical. Por omisin estos elementos son
visualizados de forma vertical en una solo columna, con el mtodo
setLayoutOrientation(), con el argumento JList.VERTICAL, pero tambin se puede
establecer mltiples columnas con las constantes JList.HORIZONTAL_WRAP o
JList.VERTICAL_WRAP.
JList (Lista Simple)
Disear una Lista
Una lista es preferible envolverla en
un panel de desplazamiento
(JScrollPane)
jscrollpane1=new JScrollPane();
jlist1=new JList();
Jscrollpane1.setViewportView(jlist1);
Iniciar la Lista
Los elementos de una lista pueden
ser cadenas, imgenes. Etc
Primero creamos un vector que
contendr los elementos de la lista, y
con el mtodo setListData se
pasamos ese vector, tambin se
puede inicializar la lista pasndole al
constructor el vector de elementos.
JTable
las tablas representa una de las formas ms comunes de mostrar un conjunto de
datos relacionados, la cual es distribuida en filas y columnas. Un objeto de este
componente es derivado de la clase JTable y el paquete javax.swing.table permite
el acceso a los componentes para manipular tablas.
Se puede arrastrar el cursor en los lmites de una columna para cambiar su
tamao, tambin esta se puede arrastrar hacia una nueva posicin. Adems
dependiendo de su configuracin es posible es posible seleccionar y obtener los
valores de una fila, columna y celda de una tabla. Un JTable es quizs el
componente de swing ms complejo.
JTable
Tiene varios constructores el ms comn es : JTable( Object matriz[][], String
cabecera[]), matriz especifica un arreglo bidimensional, contendr la informacin
de la tabla, y cabecera ser un vector para los nombres de la columnas
Construir una tabla.
Construimos una tabla a partir de una matriz de objetos Object[][] y un vector
String que servir de cabecera de las columnas, es decir los ttulos de las mismas.
Disear una tabla
Iniciar una tabla
Los elementos de una tabla pueden
ser de tipo Object, String, boolean,
Integer, Byte, Short, Long etc.
Crear una tabla usando en
constructor por defecto, la crea con
cero filas y cero columnas
Tambin es posible crear una tabla
sin datos pero con un numero de
filas y columnas predeterminada,
usando el constructor JTable(int
fila, int columna)
Modelos de una tabla
Una tabla tiene los siguientes
modelos:
TableModel: define el modelos de
datos de una tabla proporcionado
informacin acerca de las y columnas
y valores de las celdas.
TableColumnModel: modelo para
almacenar varias columnas como una
coleccin, es decir as:
Modelos de una tabla
Otra forma de inicializar una tabla es utilizando el modela que este componente
implementa por omisin. Esto es su propiedad model que hace referencia a un
objetos de a clase DafaultTableModel implementacin estndar de la interfaz
TableModel, y derivada de AbstractTableModel, que contiene los datos de la
tabla.
Referencias
Java Swing JFC
(ebook en lnea)
Programacin en
Java 2. serie
Schaum
Java 2.
Interfaces Graficas
y aplicaciones
para internet.
Javier Ceballos

Vous aimerez peut-être aussi