martes, 25 de febrero de 2014

Tool Tip multilínea en Java Swing

Introducción


Si has programado en Java Swing estarás familiarizado con el método JComponent#setToolTipText(String) para mostrar Tool Tips (esos pequeños mensajes emergentes que suelen ser descripciones o sugerencias). Si no es así, aquí está el tutorial oficial:

En principio, todo el texto se muestra en una única línea, eliminándose todos los saltos de línea (tabuladores también) presentes en la String.

¿Y si necesitas mostrar varias líneas de texto en un Tool Tip?

HTML al rescate


Diversos componentes de Swing permiten mostrar HTML 3.2 estático con cierto soporte de CSS. Aprovechando dicha característica, si en vez de pasar una String directamente, se envuelve en un elemento PRE de HTML se obtiene fácilmente el comportamiento multilínea. Por ejemplo:


String toolTipHTML= ""
    + "<html><body><pre>"
    + "This is a\nmultiline tooltip."
    + "</pre></body></html>"
;

En el siguiente enlace hay un pequeño programa para demostrar esta característica.

Conclusiones


La limitación de una única línea en los Tool Tips se puede evitar de un modo muy simple añadiendo muy poco código. Hay otras alternativas, pero aquí se muestra una efectiva y muy sencilla de implementar.
El soporte de HTML incrustado en Swing tiene importantes limitaciones, pero para algunas cosas resulta muy útil.


Enlaces


Enlaces de interés relacionados con este artículo:


(Actualizado 28/02/2014)

No hay comentarios:

Publicar un comentario