我需要在文本区域中添加行,其中包含mailto链接,然后单击它应打开电子邮件应用程序。

我该怎么做?

最佳答案

正如我在评论中所建议的那样,您应该尝试使用JTextPane而不是JTextArea。

为了使超链接正常工作,您需要执行以下操作:

  • 使textPane可编辑=假。
  • 向其中添加一个HyperlinkListener,以便您可以监视链接激活事件。

  • 快速演示如下:
        final JTextPane textPane = new JTextPane();
        textPane.setEditable(false);
        textPane.setContentType("text/html");
        textPane.setText("File not found please contact:<a href='mailto:[email protected]'>e-mail to</a> or call 9639");
        textPane.addHyperlinkListener(new HyperlinkListener() {
            @Override
            public void hyperlinkUpdate(HyperlinkEvent e) {
                if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
                    System.out.println(e.getURL());
                    // write your logic here to process mailTo link.
                }
            }
        });
    

    通过java打开邮件客户端的示例:
    try {
        Desktop.getDesktop().mail(new URI(e.getURL() + ""));
    } catch (IOException e1) {
        e1.printStackTrace();
    } catch (URISyntaxException e1) {
        e1.printStackTrace();
    }
    

    10-06 05:51