2010-06-25 7 views
1

J'ai créé une boîte de dialogue Java qui utilise le code HTML intégré pour afficher un message. Le message doit contenir un lien qui, lorsqu'il est cliqué, déclenche un événement (lancer une autre boîte de dialogue). Je ne peux pas comprendre comment le faire. Est-ce vraiment possible?lien en HTML intégré dans les boîtes de dialogue Java

Voici le code:

message = new JLabel("<html>You have selected <i>"+registry_name+" "+ registry_version +"</i><BR> in the " +"<FONT COLOR=\"#0000FF\"><U><A href=\"javascript:popup();\" id=\"test-link\">container.</A></U></FONT>" +"<script type=\"text/javascript\">"+"function popup(){var generator=window.setVisible(true);}</script></html>"); 
    JOptionPane.showConfirmDialog(dialog.dialog, message , "Selection Window",JOptionPane.CLOSED_OPTION, JOptionPane.INFORMATION_MESSAGE); 

Répondre

2

Vous pouvez créer un JLabel avec la mise en forme appropriée pour le faire paraître et agir comme un lien (bleu et souligné avec le curseur de la souris « main »).

public class Link extends JFrame { 
    public static void main(String[] args) { 
    new Link(); 
    } 

    public Link(){  
    JLabel link = new JLabel("<html><font color=\"#0000ff\"><u>The link</u></font></html>"); 
    link.setCursor(new Cursor(Cursor.HAND_CURSOR)); 
    link.addMouseListener(new MouseListener(){ 
     public void mouseClicked(MouseEvent e) { 
     System.out.println("Link was clicked"); 
     } 
     //other MouseListener methods 
    }); 

    add(link); 
    pack(); 
    setVisible(true);  
    } 
} 

Vous ne savez pas si vous pouvez mettre un lien dans un JLabel qui contient également du texte normal. Dans cette situation, vous devrez peut-être créer plusieurs JLabels.

1

Vous pouvez utiliser un JEditorPane en lecture seule et mettre un lien et utiliser un HyperlinkListener.

Voir exemple sur javadoc JEditorPane.

Questions connexes