Html en componentes Swing
Muchos componentes Swing (javax.swing) despliguen texto un simple texto, uniforme y sencillo con solo usar con solo determinar las dos propiedades de SetFont y setForeground de un componente determinado. Por ejemplo:
label = new JLabel("Un JLabel");
label.setFont(new Font("Serif", Font.PLAIN, 14));
label.setForeground(new Color(0xffffdd));
Pero si queremos combinar estilos de letras y multiples colores en una sola linea o dar un formato mas enriquecido podemos usar HTML. El formato HTML puede ser usado en JButton, JMenu, JMenuItem, JLabel, ToolTipText, y JTabPane, además con ayuda de un JLabel en el render pueden ser usados en un JTree y un JTable
Para usar formato HTML en un componente debemos poner la etiqueta < html > al principio del texto, seguidamente ponemos texto en formato HTML. Acá un ejemplo de HTML en un JButton:
button = new JButton("<html><b><u>D</u>os</b><br>lineas</html>");
Ejemplo practico
El siguientes ejemplo tiene como fin recibir código HTML y que por otro lado este código sea desplegado en formato HTML. Las fuentes del ejemplo la puedes ver en HtmlDemo.java
Algunas observaciones:
• Ponga código HTML en el área en blanco y luego precionar el botón de abajo
• Quitar la etiqueta < html > del principio del texto para que el código HTML no sea parceado
BotonHTMLDemo
Ahora un ejemplo de tres botones (JButton) aplicando diferentes estilos de fuentes y colores, también se hace el uso de imágenes. El código del ejemplo lo puedes ver en el archivo BotonHtmlDemo.java. Acá un ejemplo de como quedaría:
El botón de la izquierda y derecha usa diferentes tipos de formato y colores y también implementa HTML. El botón del centro usa una sola línea y no usa HTML.
Acá podemos ver el código que especifica el formato de los tres botones:
b1 = new JButton("<html><center><b><u>D</u>esabilitado</b><br>"
+ "<font color=#ffffdd>boton central</font>",
iconoBotonIzquierdo);
Font font = b1.getFont().deriveFont(Font.PLAIN);
b1.setFont(font);
b1.setVerticalTextPosition(AbstractButton.CENTER);
b1.setHorizontalTextPosition(AbstractButton.LEADING);
b1.setMnemonic(KeyEvent.VK_D);
b1.setActionCommand("disable");
b2 = new JButton("middle button", iconoBotonCentral);
b2.setFont(font);
b2.setForeground(new Color(0xffffdd));
b2.setVerticalTextPosition(AbstractButton.BOTTOM);
b2.setHorizontalTextPosition(AbstractButton.CENTER);
b2.setMnemonic(KeyEvent.VK_M);
b3 = new JButton("<html><center><b><u>H</u>abilitado</b><br>"
+ "<font color=#ffffdd>boton central</font>",
iconoBotonDerecho);
b3.setFont(font);
Read More
Multilineas en un JLabel
En realidad no se si existe un metodo que haga tal cosa. El siguiente ejemplo lo que hace es crear varias lineas en un JLabel, intentalo:
Cada linea tiene que estar escrita entre:
<html> y <P>
Entonces quedaria algo como esto:
String texto = "<html>esto es tecto de la linea 1<P>"+ "<html>esto es texto de la linea 2<P>"; label.setText(texto);
Claro que el bloque de codigo anterior esta visualizado en formato html, pero el codigo en si es java y esta totalmente valido
Read More

Comentarios recientes