Este es el código que tengo en un archivo llamado Test2.java en un paquete llamado test2 en un proyecto llamado Test2;Hipervínculos en JLabels
package test2;
import javax.swing.JFrame;
public class Test2 {
public static void main(String[] args) {
JFrame mainWindow = new HtmlWindow("<html>"
+ "<a href=\"http://stackoverflow.com\">"
+ "blah</a></html>");
mainWindow.setVisible(true);
}
}
En el mismo paquete tengo este código en un archivo llamado HtmlWindow.java;
package test2;
import java.awt.BorderLayout;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JLabel;
class HtmlWindow extends JFrame {
public HtmlWindow(String refreshGrid) {
super("blah");
setSize(300, 100);
Container content = getContentPane();
String labelText = refreshGrid;
JLabel coloredLabel = new JLabel (labelText, JLabel.CENTER);
content.add(coloredLabel, BorderLayout.NORTH);
}
}
Cuando ejecuto el proyecto, me sale una ventana con la palabra "bla" en la ubicación esperada, azul y subrayado, pero el cursor no cambia cuando se ciernen sobre la palabra, ni tampoco sucede nada cuando Hago clic en él
Mis preguntas son las siguientes;
- ¿Es posible poner hipervínculos en jLabels?
- Si es así, ¿estoy haciendo algo mal o el programa no funciona correctamente?
- Si no, ¿cuál es una buena alternativa? La razón por la que no estoy usando JButtons, es que eventualmente quiero crear una cuadrícula de un número arbitrario de hipervínculos, y quiero que los hipervínculos sean imágenes, y aunque JButtons puede tener imágenes en ellos, no quiero los hipervínculos a parecer "botones". ¿Supongo que podría usar un JEditorPane no editable?
¡Gracias por su pronta respuesta! Creo que usar un oyente de ratón es la solución preferible, ya que a la larga no estoy particularmente interesado en abrir un navegador sino en provocar otra respuesta. –