Cómo crear programas Java con GUI utilizando GCJ, GLADE y GTK

En este artículo se explicará cómo crear programas Java con interfaz gráfica (GUI) utilizando solamente software libre. Se utilizará GCJ, CLASSPATH, GLADE y GTK.

Conceptos básicos

  • Java: Lenguaje de programación
  • Compilador java: Compila el código fuente java y genera un bytecode
  • Bytecode: código intermedio que puede ser interpretado (casi) en cualquier máquina virtual Java
  • Máquina virtual Java: Interpreta el bytecode Java
Existen varias máquinas virtuales de Java: Sun, IBM, GNU. GNU Compiler for Java, o GCJ, es una implementación libre de la máquina virtual Java. No están implementas todas las funciones que soporta la máquina virual de Sun. Sun liberó su máquina virtual de Java como software libre, pero aún no ha salido una versión estable.
GNU CLASSPATH es una biblioteca de clases esenciales para máquinas virtuales de Java. Es una alternativa libre a las clases de Sun.
El estándar de Java establece dos bibliotecas de interfaces gráficas: AWT y SWING. AWT utiliza widgets del sistema operativo y por lo tanto su apariencia depende del sistema operativo. SWING utiliza widgets propios, asi que se ve igual en todos los sistemas operativos sobre los que se ejecuta. Otra alternativa es utilizar la biblioteca GTK, en la cual está basado GNOME. GTK es multiplataforma y funciona en GNU/Linux, Windows, Mac OS, entre otros.
GLADE es un programa que permite diseñar interfaces gráficas y las almacena como archivos XML. Luego, los programas Java pueden leer estos archivos XML. Al separar la interfaz gráfica del código, éste se simplifica.
En resumen, podemos utilizar las siguientes herramientas libres para crear programas Java con interfaz gráfica:
  • Glade para diseñar la interfaz gráfica de la aplicación
  • GCJ como máquina virtual de Java
  • Biblioteca GTK para dibujar los widgets

Instalación

Aquí solo cubriré la instalación de estas herramientas en gNewSense, pero debería lo mismo para Ubuntu 6.06 (Dapper) y quizás para Debian y otros derivados de Debian. Debemos instalar los siguientes paquetes:
  • gcj
  • classpath
  • classpath-doc
  • glade-2
  • libgnome-java
  • libglade-java
  • libgconf-java
  • libgtk-java
Luego agregamos las bibliotecas que utilizaremos a la variable de entorno CLASSPATH
export CLASSPATH=/usr/share/java/glade2.12.jar:\ /usr/share/java/gtk2.8.jar:/usr/share/java/glib0.2.jar:.
Podemos ver los ejemplos que vienen con el paquete libglade-java. Los copiaremos para poder jugar con ellos:
cd cp -r /usr/share/doc/libglade-java/examples/glade . cd glade gunzip *.gz
Y luego los compilamos con GCJ:
javac *.java

Ejecución

Para ejecutar los ejemplos hay que hacer lo siguiente:
cd .. java glade.Test java glade.Example1 java glade.LibGladeTest glade/gtk.glade

Documentación

La documentación sobre la API y los ejemplos de cada paquete están disponibles en:
  • libglade-java
    • /usr/share/doc/libglade-java/api/index.html
    • /usr/share/doc/libglade-java/examples
  • Classpath
    • /usr/share/doc/classpath-doc/api/index.html
    • /usr/share/doc/classpath-doc/api/examples
  • libgtk
    • /usr/share/doc/libgtk-java/api/index.html
    • /usr/share/doc/libgtk-java/examples

Enlaces

Hasta aquí llega mi artículo. Con los ejemplos, la documentación y los enlaces es suficiente para continuar. Happy Hacking

Comentarios