Programando en Java: XML et al (II)

Se puede decir que en estas dos semanas desde que empecé con el mundo de Thinlet en Java, he hecho bastantes progresos. Ya tengo la interface funcionando, aunque hasta hace un par de días, de forma estática. Unos campos fijos, unas etiquetas también fijas, y para variar, diálogos, botones y demás también fijos.

Al parecer esto de ser tan estático no le hace demasiada gracia a las altas esferas (director de proyecto), así que me he propuesto hacer la interface dinámica tan sólo modificando un XML con una sintaxis sencillita, tal que <filedialog buttonname="" textname="" labeltext="" /> o <camp labeltext="N: " name="camp_n" default="70"/>

La audiencia se preguntará por lo tedioso del parseado, pues bien, resulta bastante sencillo, si contamos con las herramientas adecuadas (JDom). A continuación os ejemplificaré algunas de sus utilidades.

También os explicaré como incluir un jar dentro de un jar, es decir, compilar nuestro jar del proyecto de netbeans con una librería que nos hayamos bajado que también esté en jar, dentro del mismo, para que no haya problemas de falta de librerías en otra máquina.

Y dónde está tal prodigio de la técnica al que llamas JDom? Aquí: http://www.jdom.org/
Os recomiendo compilar el JDom, porque por alguna desconocida razón no funciona incluyéndolo en las fuentes sin compilar.

Con JDom tenemos una clase llamada SAXParser, que funciona así:

SAXBuilder builder=new SAXBuilder(false);
Document doc=builder.build("archivo.xml");
Element root=doc.getRootElement();

Si guardamos todos los hijos de la raíz en una lista, podremos usar iteradores para recorrerla
List elements = root.getChildren();
Iterator i = elements.iterator();
Element e = (Element) i.next();
Comprobar el nombre del tag: e.getName();
Consultar el valor de un atributo del tag (nombre): e.getAttributeValue("name");

Esto son ejemplos sencillos, aunque si el XML es más complejo tampoco es problemático.

Lo prometido es deuda. Cómo incluir un jar externo dentro de nuestro jar del proyecto?
Cómo los jar son realmente zip con un archivo de Manifest, que básicamente indica la clase principal que tiene que ejecutar la JVM, renombramos nuestro jar a zip. Abrimos el zip, y dentro habrá una carpeta con unos archivos .class dentro. Lo único que tenemos que hacer es arrastrar esa carpeta a nuestro src/ del directorio del proyecto del NetBeans, y al hacer el Build, se incluirá automáticamente en el jar, y sin problemas de dependencias. Si no ha quedado claro, dejad un comentario y hago capturas o lo que sea.

Por hoy es suficiente, pronto más.

Salut,
Dani.

Referencias:
Programando en Java: The Thinlet World (I): http://www.gra2.com/article.php/20050214225825123
Thinlet: http://thinlet.sourceforge.net
JDom: http://www.jdom.org



 


Trackback

Trackback URL for this entry:
http://www.gra2.com/trackback.php/20050228222237484

No trackback comments for this entry.

Comments

Post a comment

Muchas gracias por tu artículo.

Yo hace poco que he empezado a aprender Java, y la verdad que todavía ando un poco pez :P

Gracias a gente como tú, que comparte sus conocimientos altruistamente, es mucho más fácil ir aprendiendo.

Saludos

Anonymous on Saturday, March 19 2005 @ 04:44 PM CET Reply | #

Tengo que realizar un proyecto con Java y XML y recien estoy aprendiendo a usar JDOm asi que creo que en algun momento me servira lo posteado.. asi que te agradesco de antemano.
Daniel

Anonymous on Friday, February 29 2008 @ 04:26 PM CET Reply | #

Search



About

newton.gra2.com is a blog about technology, opinion and random thoughts written by Daniel Alvarez, a computer engineer currently living in Zurich, Switzerland.

Topics

News (20/0)
Manuals (24/0)
Security (7/0)
Music (3/0)
Weeklog (1/0)
Personal (34/0)
Photos (3/0)
Opinion (14/0)
Windows (5/0)

Blogroll

Pros i contres (Jordi)
Entrepa de fusta (Oriol)
Spaghetti Code (Isaac)
Made in net (Eric)
Nogare (Juan)
Blog de Isaac Jimenez
Web d'en Jaume Benet
Montcada Wireless (Fran)
Blog d'en Ricard Forniol
Angela Fabregues
in.solit.us

Libertad Digital
FOX News
The Wall Street Journal
The Washington Times
The Jerusalem Post

Michelle Malkin
Eurabian News
Nihil Obstat
Barcepundit
Expose the left
Davids Medienkritik
Johan Norberg
Ayaan Hirsi Ali

User Functions

:

:


Lost your password?

Latest posts

Stories

No new stories

Comments last 2 days


Trackbacks last 2 days

No new trackback comments

Links last 2 weeks

No recent new links