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.
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:
Podemos ver los ejemplos que vienen con el paquete libglade-java. Los copiaremos para poder jugar con ellos:
Y luego los compilamos con GCJ:
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
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
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
- /usr/share/doc/libglade-java/api/index.html
- Classpath
- /usr/share/doc/classpath-doc/api/index.html
- /usr/share/doc/classpath-doc/api/examples
- /usr/share/doc/classpath-doc/api/index.html
- libgtk
- /usr/share/doc/libgtk-java/api/index.html
- /usr/share/doc/libgtk-java/examples
- /usr/share/doc/libgtk-java/api/index.html
Enlaces
- Developing GNOME Applications with Java, http://www.linuxjournal.com/article/8111
- Un poco de java libre, http://www.pacoros.net/diario/2005/10/27/un-poco-de-java-libre/
- JGlade, http://jglade.sourceforge.net/wiki/index.php/Main_Page
- Java-GNOME, http://java-gnome.sourceforge.net/
- Java-GTK, http://freshmeat.net/projects/javagtk/
- Gnome-GCJ, http://gnome-gcj.sourceforge.net/
Comentarios