Questo è il codice che ho in un file chiamato Test2.java in un pacchetto chiamato test2 in un progetto chiamato Test2;Collegamenti ipertestuali in JLabel
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);
}
}
Nello stesso pacchetto ho questo codice in un file chiamato 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);
}
}
Quando eseguo il progetto, ho una finestra con la parola "blah" nella posizione prevista, blu e sottolineato, ma il cursore non cambia quando mi passa il mouse sopra la parola, né accada nulla quando Lo clicco.
Le mie domande sono le seguenti;
- È possibile inserire collegamenti ipertestuali in jLabels?
- In tal caso, sto facendo qualcosa di sbagliato o il programma non funziona correttamente?
- In caso negativo, qual è una buona alternativa? La ragione per cui non sto usando JButtons, è che alla fine voglio creare una griglia di un numero arbitrario di collegamenti ipertestuali, e voglio che i collegamenti ipertestuali siano immagini, e mentre i JButton possono avere immagini su di essi, non voglio che i collegamenti ipertestuali sembrano "bottoni". Suppongo che potrei usare un JEditorPane non modificabile?
Grazie per la rapida risposta! Penso che usare un ascoltatore del mouse sia la soluzione preferibile, visto che a lungo andare non sono particolarmente interessato ad aprire un browser ma a scatenare qualche altra risposta. –