Incluso el código de un programa Java básico con interfaz gráfica es relativamente complejo, pero he diseñado una pequeña aplicación muy simple para ilustrar el funcionamiento de las ventanas, los controles y los eventos.
Antes de pasarte el código, te voy a explicar cómo funcionan las interfaces gráficas en Java:
Tanto las ventanas como los controles (botones, áreas de texto,...) son instancias de clases definidas en Java. Estos objetos reciben acciones, como el clic del ratón o la pulsación de una tecla, y deben responder adecuadamente. Estas acciones se llaman eventos.
Pero, en principio, el objeto no sabe qué hacer cuando recibe un evento. Para tomar esta decisión, existen los "listeners" u oyentes, que se asocian a uno o más controles y detectan cualquier evento que se produce sobre ellos para dar una respuesta deseada (por ejemplo, cerrar la ventana).
Por tanto, cualquier programa Java necesita al menos tres librerías fundamentales:
java. Awt, que permite crear ventanas.
java. Awt. Event, que aporta mecanismos de detección de eventos.
Javax. Swing, que proporciona controles como cajas de texto, botones,...
El código del programa es el siguiente:
// Ventana.java
// Ejemplo de aplicación en Java que trata de ilustrar el proceso de
// creación de ventanas y controles y manejo de eventos.
// Se añaden oyentes de eventos para gestionar el clic del ratón
// tanto sobre el botón de cierre de la esquina de la ventana como
// sobre el botón central de la misma.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
// Ventana (clase principal)
public class Ventana {
// main
public static void main(String[] args) {
JFrame vent = new JFrame(); // Una ventana
JButton btnCerrar = new JButton("Cerrar"); // Un botón
Container cnt = vent.getContentPane(); // Contenedor de la ventana
// Propiedades del botón
btnCerrar.addActionListener(new OyenteBoton());
// Añadir botón a la ventana:
cnt.add(btnCerrar);
// Propiedades de la ventana
vent.setLocation(100, 100);
vent.setSize(400, 300);
vent.setTitle("Hola, mundo");
// Un Layout es la forma en que los controles se colocan
// en la ventana a medida que se añaden. FlowLayout
// coloca cada control a continuación del anterior.
vent.setLayout(new FlowLayout());
// Añadir el oyente a la ventana y mostrarla:
vent.addWindowListener(new OyenteVentana());
vent.setVisible(true);
}
}
// Oyente de la ventana
class OyenteVentana extends WindowAdapter {
// Oyente del evento de cierre de ventana
public void windowClosing(WindowEvent e) {
System.exit(0); // Salir del programa
}
}
// Oyente del botón
class OyenteBoton implements ActionListener {
// Oyente del evento de clic en el botón
public void actionPerformed(ActionEvent e) {
// Si el texto del control es "Cerrar",
// el programa termina.
if (e.getActionCommand() == "Cerrar")
System.exit(0);
}
}
Puedes aprender más sobre creación de ventanas en la siguiente dirección:
http://www.ulpgc.es/otros/tutoriales/java/Cap4/awt.htmlEspero haberte ayudado. Suerte.