View Full Version : [Java] : Link cliccabile in Finestra o in JOptionPane
Zoddicus
03-04-2008, 11:52
salve a tutti, qualcuno mi sa dire come realizzare un link cliccabile che apre una pagina html, il tutto all'interno di una finestra oppure in una JOptionPane.
Grazie
salve a tutti, qualcuno mi sa dire come realizzare un link cliccabile che apre una pagina html, il tutto all'interno di una finestra oppure in una JOptionPane.Tutti i principali componenti Swing che visualizzano del testo sono in grado di visualizzare codice HTML 3.2, quindi compreso il tag <a>. Purtroppo solo 1 componente che è JEditorPane può usare un apposito listener HyperlinkListener per "ascoltare" i click sui link <a> messi nel codice HTML visualizzato dal JEditorPane.
JEditorPane si può anche mettere dentro un JOptionPane. Ecco un esempio basilare:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
public class Prova
{
public static void main (String[] args)
{
JEditorPane editorPane = new JEditorPane ("text/html", "Clicca su questo <a href='pippo'>link1</a> o su questo <a href='paperino'>link2</a>");
editorPane.setEditable (false);
editorPane.addHyperlinkListener (new HyperlinkListener ()
{
public void hyperlinkUpdate (HyperlinkEvent evt)
{
if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
{
JOptionPane.showMessageDialog ((Component) evt.getSource (), "Hai cliccato il link con href = " + evt.getDescription ());
}
}
});
JOptionPane.showMessageDialog (null, editorPane);
}
}
Il mio esempio si limita a visualizzare una box che dice quale è il href del link cliccato. Mettendo degli url "veri" e leggendoli con getDescription (), si può poi farne quello che si vuole.
Zoddicus
03-04-2008, 15:44
grazie per la risposta e per la celerità :)
Zoddicus
03-04-2008, 18:03
un altra domanda..è possibile aprire il link della JOptionPane e aprire il browser con l'URL a cui fa riferimento?e se si come?
Ri-Grazie
aprire il browser con l'URL a cui fa riferimento?Dipende ....
Se sei in una applet: showDocument() di AppletContext.
Se sei in una applicazione, una di queste possibilità:
a) metodo browse() di java.awt.Desktop (solo da Java 6 !)
b) uso della libreria JDIC (https://jdic.dev.java.net).
c) metodo exec() di Runtime per lanciare un qualche comando (ovviamente dipendente dal S.O.) per aprire un certo browser.
Zoddicus
03-04-2008, 20:42
Grazie di nuovo della riposta!
sono in una applicazione, ho una versione 1.5 e sono in windows xp quindi proverò con le librerie oppure col comando exec()
grazie :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.