Académique Documents
Professionnel Documents
Culture Documents
Facultad: Ingeniería
Uso de Swing básico.
Escuela: Computación
Asignatura: Java.
I.OBJETIVOS
Introducción a Swing:
Swing es una biblioteca gráfica para Java que forma parte de las Java Foundation
Classes (JFC). Incluye widgets para interfaz gráfica de usuario tales como cajas de texto,
botones, desplegables y tablas.
Historia
La Internet Foundation Classes (IFC) era una biblioteca gráfica para el lenguaje de
programación Java desarrollada originalmente por Netscape y que se publicó en 1996.
Desde sus inicios el entorno Java ya contaba con una biblioteca de componentes gráficos
conocida como AWT. Esta biblioteca estaba concebida como una API estandarizada que
permitía utilizar los componentes nativos de cada sistema operativo.
Ventajas:
* El diseño en Java puro posee menos limitaciones de plataforma.
* El desarrollo de componentes Swing es más activo.
* Los componentes de Swing soportan más características.
Desventajas:
* La mayoría de los browsers no incluyen clases swing, por lo que es necesario utilizar
un plugin java.
GUÍA 4 pág. 1
* Los componentes swing generalmente son más lentos y presentan más
problemas debido a que están hechos en Java puro, y suelen presentar problemas
relacionados con vídeo en varias plataformas.
* No siempre tienen el mismo aspecto que en el sistema donde fueron diseñados.
III. PROCEDIMIENTO
Ejemplo 1:
GUÍA 4 pág. 2
Ejemplo 2:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
}
}
Creación de un marco.
Las ventanas de nivel superior (esto es, las que no están dentro de otra ventana) reciben
el nombre de Marco en Java. La biblioteca AWT posee una clase llamada Frame que
sirve para este tipo de ventana. La versión de Swing de esta clase se denomina JFrame y
extiende (hereda) a la clase Frame.
GUÍA 4 pág. 3
import javax.swing.JFrame;
/**
*
* @author Santiago José Campos Robles.
*/
public class PruebaMarcoSencillo
{
/** Creates a new instance of PruebaMarcoSencillo */
public PruebaMarcoSencillo() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
// TODO code application logic here
MarcoSencillo marco = new MarcoSencillo();
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marco.setVisible(true);
}
}
class MarcoSencillo extends JFrame
{
public MarcoSencillo()
{
setSize(ANCHURA_PREFIJADA, ALTURA_PREFIJADA);
}
De forma predeterminada, los marcos tienen un tamaño más bien inútil de 0x0 píxeles.
Nosotros definimos la subclase MarcoSencillo cuyo constructor especifica un tamaño de
300x200 píxeles. En el método main de la clase PruebaMarcoSencillo, empezamos por
construir un objeto de tipo MarcoSencillo.
GUÍA 4 pág. 4
A continuación, definimos lo que debe ocurrir cuando el usuario cierra este
marco. Para este programa en particular, deseamos que el programa concluya. Para
seleccionar este comportamiento, empleamos la sentencia:
Marco.SetDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Ejemplo 3:
La clase JFrame en si posee únicamente unos pocos métodos para modificar el aspecto
que tiene los marcos. Por supuesto, mediante la magia de la herencia, la mayoría de los
métodos que sirva para trabajar con el tamaño y posición del marco provienen de las
distintas superclases de JFrame. Entre los métodos más importantes cabe mencionar los
que siguen:
• El método dispose que cierra la ventana y recupera los posibles recursos del
sistema empleados para crearla.
• El método setIconImage, que admite un objeto de tipo Image y lo utiliza como
icono cuando se minimiza la ventana.
• El método setTitle que sirve para cambiar el texto que aparece en la barra de
título.
• El método setResizable, que admite un bolean y determina si el usuario va a
poder o no cambiar el tamaño del marco.
GUÍA 4 pág. 5
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class PruebaMarcoCentrado {
/** Creates a new instance of PruebaMarcoCentrado */
public PruebaMarcoCentrado() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
MarcoCentrado marco = new MarcoCentrado();
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//marco.setExtendedState(Frame.MAXIMIZED_BOTH);
marco.setVisible(true);
}
}
class MarcoCentrado extends JFrame
{
public MarcoCentrado()
{
Toolkit Kit = Toolkit.getDefaultToolkit();
Dimension tamanoPantalla = Kit.getScreenSize();
int alturaPantalla = tamanoPantalla.height;
int anchuraPantalla = tamanoPantalla.width;
setSize(anchuraPantalla/2, alturaPantalla/2);
setLocation(anchuraPantalla/4, alturaPantalla/4);
GUÍA 4 pág. 6
MANEJO DE EVENTOS:
El manejo de eventos es de vital importancia capital para los programas que posee una
interfaz de usuario gráfica. Para implementar las interfaces de usuario, es preciso dominar
la forma en que Java maneja los eventos.
Todo entorno operativo que admite GUI monitoriza constantemente los eventos tales
como teclas pulsadas o clic de ratón. El entorno operativo notifica estos eventos a los
programas que están en ejecución. Entonces cada programa decide lo que debe hacer, si
procede, como respuesta a estos eventos.
Dentro de los límites de los eventos que resultan conocidas para AWT, tenemos un
completo control de la forma en que se transmiten los eventos desde las fuentes de
eventos (como los botones o las barras de desplazamiento) hasta los oyentes de eventos.
Cualquier objeto puede ser nombrado oyente de eventos; en la práctica, seleccionaremos
un objeto que puede llevar a cabo de forma cómoda la respuesta deseada para ese
evento.
Véase un ejemplo:
ahora el objeto oyente recibe una notificación siempre que se produce un “evento de
acción” en el botón. Para los botones, como cabe esperar, un evento de acción es un clic
en el botón.
Ejemplo 4:
GUÍA 4 pág. 7
Nombre de la Clase: PruebaBoxLayout.java
import java.awt.Component;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
GUÍA 4 pág. 8
GUÍA 4 pág. 9