【问题标题】:link in embedded HTML in Java dialogs在 Java 对话框中嵌入 HTML 中的链接
【发布时间】:2010-06-25 12:36:51
【问题描述】:

我创建了一个 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);

【问题讨论】:

    标签: java html dialog


    【解决方案1】:

    您可以创建一个具有适当格式的 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。

    【讨论】:

      【解决方案2】:

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

      参见 javadoc JEditorPane 上的示例。

      【讨论】:

        猜你喜欢
        • 2012-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多