2010-06-25 66 views
1

我创建了一个使用嵌入式HTML显示消息的Java对话框。该消息应该包含一个链接,点击该链接时,它应该激发一个事件(启动另一个对话框)。我无法弄清楚如何去做。这真的有可能吗?在Java对话框中的嵌入式HTML链接

下面是代码:

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); 

回答

2

您可以创建一个适当的格式将JLabel,使其外观和行为像一个链接(蓝色,并与“手”鼠标光标下划线)。

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);  
    } 
} 

不确定是否可以将链接放在同样包含普通文本的JLabel中。在这种情况下,您可能需要创建多个JLabel。

1

您可以使用只读JEditorPane并放置链接并使用HyperlinkListener。

请参阅javadoc JEditorPane的示例。