21 de abril de 2006

Java + unicode + UTF8 + jdom = PROBLEMAS

Hola, hoy aprendí algo y quiero compartirlo por que me costo mucho trabajo encontrarlo.

Bueno chicos como dice el titulo que pasa si mezclamos java con jdom o xml en general. Bueno para mi, problemas jejeje, solo problemas para mi claro esta, por que jdom es un api excelente para trabajar con xml de una manera mas eficaz. En lo personal me encanto el api. Pero hay un detalle por el que casi tenia que decir, mi aplicacion no acepta acentos o caracteres raros.

jeejejee bueno claro que en xml hay caracteres reservados pero fuera de esos caracteres que pasa si en un string tienes niño y lo pasas al documento xml. Pues muy simple, luego no lo puedes abrir, por que resulta que te marca errores por que la ñ que mandaste del string (osea con charset unicode) pues el parser no lo reconoce como un caracter valido en utf-8

Pero bueno que sucede: En java la clase String emplea unicode para la codificación de sus caracteres. Entonces como conviertes de unicode a utf-8 para poder pasarlo al xml.

Pues al buscar en google me resulto claro que no estaba solo y muchos subieron la misma pregunta en foros y otros lugares. Pero la respuesta es algo simplona pero util.

bueno imaginen esto:
String str = ñ;
/*Antes de pasarlo al xml con un setText puedes hacer esta simple instrucción y listo.*/
str = new String(str.geBytes("UTF8"));
y ahora si listo para setText(str);

Desglosando un poco esto:
getBytes("UTF8") te regresa un arreglo de bytes que corresponden al string pero en codificación UTF-8. Y el resto es aun mas simple crear un nuevo String pero con los valores de este arreglo de bytes, bueno es algo sencillo y a mi me funciono, pero creo que es algo dificil de encontrar. Yo lo que buscaba era algo que me cambiara toda la codificacion de un documento de jdom pero en vez de eso solo encontre esto.

Espero que a alguien le sirva.

Suerte.

Por cierto la persona que posteo la info necesaria para entender esto fue:
Patrick JUSSEAU

A el muchas gracias.

11 de abril de 2006

Abeille Forms Designer

Por lo que entiendo forms es un layout de java hecho por un otro proyecto de software libre el cual se concentra en la edicion de formas de una forma sencilla.

Pero el Abeille forms designer es un programa en java que te permite hacer formas de una forma muy facil y de manera visual, de esta forma separando el aspecto de la programación.

De tal forma que uno diseña una forma en este programa y este te genera una clase la cual puedes usar. El codigo es muy limpio y facil de leer. Tiene incluso comentarios para javadoc.

El diseñador es un poco raro al principio pero ya que se le agarra el chiste es muy intuitiva y es muy sencilla.

Ahora que estoy programando en java para mi proyecto me ha sido muy util y en general me gusto la forma en que se puede usar.

veran este diseñador guarda sus documentos como xml o como jfrm este ultimo es formato binario.

Pero bueno con este archivo sin pasarlo a codigo se puede llamar desde una clase de la siguiente forma:

FormPanel panel = new FormPanel("archivo.xml");

luego uno accede a cada elemento de la forma con unos getter y setters definidos en la clase FormPanel.

por ejemplo si pusimos un JButton y le pusimos el nombre de boton.

un action listener seria asi:

panel.getButton("boton").addActionListener(new ActionListener(){
public void ActionPerformed(ActionEvent e){
//aqui pones tu codigo
}
});

Como ven uno puede usar la clase generada en codigo o usar este metodo que es el que mas me gusta pues separa lo visual de la funcionalidad.

En general es una herramienta que ahorra mucho tiempo. Por eso la he escogido para mi proyecto y espero que les interese.
www.jetaware.com es la página de donde se pueden bajar el programa.

Los hábitos que quiero fomentar

Si bueno, probando, el micrófono sigue funcionando? Este blog se ha caracterizado por muchos re lanzamientos, vengo y digo ahora si voy...