T001: Creando un GUI con JFC/Swing

publicado a la‎(s)‎ 23 sept. 2012 19:24 por Hernan Nina Hanco   [ actualizado el 23 sept. 2012 20:21 ]
Introducción
En la presente entrada, se explica la creación de una Interfaz Gráfica de Usuario utilizando el paquete de clases Swing. Se utiliza las Clases JFrame, JLabel, JTextField, JList, JTable, JButton. Para la creación de aplicaciones se utiliza el IDE Netbeans.

Marco teórico

JFC y Swing
JFC significa Java Foundation Classes, que abarca un conjunto de funcionalidades para la creación de de Interfaces Gráficas de Usuario (GUI) adicionando acabados con excelentes gráficos y proporcionando la capacidad de interacción a las aplicaciones de Java. En la siguiente tabla mostramos las funcionalidades de JFC:

FuncionalidadDescripción
Swing GUI Components Incluye varias cosas como botones, división de paneles, tablas, etc. Muchos de estos componentes son capaces de ordenar, imprimir, poder arrastrar y soltar.
Pluggable Look-and-Feel Support El look and feel de aplicaciones Swing, permite elegir diferentes formas de apariencia o temas, un mismo programa podria utilizar un Java o Windows look and feel. Adicionalmente, la plataforma Java soporta GTK+ look and feel, Esto permite que las aplicaciones de Java puedan ejecutarse en cualquier Sistema Operativo.
Accessibility API Permite acceso a las tecnologías de accesibilidad como los lectores de pantalla o los Braille.
Java 2D API Permite a los desarrolladores incorporar fácilmente gráficos de alta calidad en 2D, texto e imágenes en aplicaciones y applets. Java 2D incluye extensiones de APIs para la generación y envío de resultados de alta calidad a dispositivos de impresión.
Internationalization Permite a los desarrolladores crear aplicaciones que puedan interactuar con los usuarios de todo el mundo en sus propios idiomas y convenciones culturales. Las entradas de datos pueden ser realizadas en diferentes lenguajes como japonés, chino o coreano.

Ejemplos de aplicaciones

Creación y compilación de una aplicación en Swing

package presentacion;

/**
 *
 * @author hernan
 */
import javax.swing.JFrame;
import javax.swing.JLabel;

public class PrincipalIU extends JFrame {

    /**
     * Crea y muestra el GUI. es preferente mostrar la GUI
     * dentro dentro de un hilo.
     */
    private static void crearYMostrarGUI() {
        //Crear y modificar una ventana.
        JFrame frame = new JFrame("HolaMundoSwing");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Adicionar y localizar una etiqueta "Hello World".
        JLabel label = new JLabel("Hello World");
        frame.getContentPane().add(label);

        //Mostrar la ventana.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        //planificar el trabajo para disparar un evento en un hilo:
        //creando y mostrando la aplicación GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                crearYMostrarGUI();
            }
        });
    }
}


Conclusiones

Comments