El paquete Swing es parte de la JFC (Java
Foundation Classes) en la plataforma Java. La
JFC provee facilidades para ayudar a la gente a
construir GUIs. Swing abarca componentes
como botones, tablas, marcos
Swing existe desde la JDK 1.1 (como un agregado).
Antes de la existencia de Swing, las interfaces
gráficas con el usuario se realizaban a través de
AWT (Abstract Window Toolkit), de quien Swing
hereda todo el manejo de eventos
Component es una clase abstracta que representa
a cualquier componente con representación
gráfica. Container es un componente que puede
contener a otros componentes gráficos (p.ej.
JPanel). JFrame permite representar ventanas, si
bien también se pueden utilizar clases como
JApplet o JDialog.
Las componentes Swing se identifican porque
pertenecen al paquete javax.swing
Las clases cuyo nombre comienza por J forman
parte de Swing. Todas las demás están incluidas
en AWT (Abstract Window Toolkit)
Component es una clase abstracta que representa a cualquier
componente con representación gráfica. Container es un componente
que puede contener a otros componentes gráficos (p.ej. JPanel). JFrame
permite representar ventanas, si bien también se pueden utilizar
clases como JApplet o JDialog.
Interfaces, clases abstractas y otras cosas de
Java...
Programación orientada a objetos que son muy usados en
Swing, más con la intención de refrescarlos y de ver la aplicación
que se hace de ellos en Swing que de explicarlos desde el
principio o conocer en profundidad cómo funcionan y qué se
puede hacer con ellos. También haremos hincapié en las
diferentes maneras de declarar una clase
Distribución del espacio (layout
management)
Antes de construir una interfaz gráfica de
usuario es importante saber cómo se
distribuyen especialmente los componentes.
Los layout managers controlan la forma en
la que colocan los componentes dentro de
un contenedor:
FlowLayout (por defecto para un JPanel) coloca los
componentes de izquierda a derecha, de arriba abajo. Los
componentes se van colocando a la derecha de los ya
existentes hasta que se añade una nueva fila cuando no
queda espacio suficiente en la fila actual. Cuando el
contenedor se redimensiona, los componentes se
redistribuyen automáticamente.
Visualización de imágenes
El método Graphics.drawImage() nos permite dibujar imágenes en formato
GIF, PNF o JPEG. Las imágenes podemos leerlas con el método getImage() de
la clase java.awt.Toolkit
Componentes estándar
Los frames (como JFrame) son contenedores, por lo
que incluyen un “panel de contenido” (content pane)
al cual se le pueden añadir componentes gráficos
(etiquetas, botones, cajas de texto, etc.) y otros
contenedores (como paneles JPanel).
Dibujo de gráficos
2D
Los paneles (como JFrame) son contenedores que pueden
contener otros componentes y, además, tienen una
superficie sobre la que se puede dibujar (canvas o lienzo).
Para dibujar en un panel JPanel, hay que redefinir el
método paintComponent() de la clase JComponent, que
se invoca automáticamente cada vez que hay que
refrescar la visualización del componente en la pantalla
(p.ej. cuando se mueve o redimensiona una ventana).
Un objeto de tipo java.awt.Graphics define el contexto en el
que se dibuja (tipo de letra, estilo de línea, color…), e incluye
métodos para dibujar distintos tipos de figuras y mostrar
mensajes de texto
Las interfaces gráficas de usuario se construyen con
componentes, cada uno de los cuales está
preparado para responder a distintos tipos de
eventos. Algunos de los componentes incluidos en
Swing son:
JLabel (etiqueta para mostrar texto)
JTextBox & JTextArea (cajas de texto
para la entrada de datos) JButton
(botón) JCheckBox (caja de
comprobación, para elegir opciones)
JRadioButton (para elegir opciones
mutuamente excluyentes) JList (lista de
opciones) JComboBox (lista desplegable
de opciones) JScrollBar (barra de scroll)
JTree (árbol) JTable (tabla) Menús:
JMenuBar, JMenu, JMenuItem Ventanas
de diálogo: JOptionPane Ventanas
estándar: JFileChooser, JColorChooser
Nos brinda ciertas facilidades para la
construcción de interfaces graficas de
usuario........ en esta entrada vamos a
conocer a nivel general algunos de los
principales componentes que podemos usar
en nuestras GUI's
Hasta el momento hemos visto lo que es Swing, las
diferencias entre JFrame y JDialog así como un pequeño
ejemplo sobre la creación de Ventanas incluyendo
también 2 componentes tales como los botones y las
etiquetas de texto.