如何在Java中向包含mailto链接的文本区域添加行?

3
我需要在swing的文本区域中添加包含mailto链接的行,并且单击它应该打开电子邮件应用程序。
我该如何做呢?

3
您应该尝试使用JTextPane而不是JTextArea。 - Harry Joy
我将文本追加到textArea中,请问你能举个例子吗? - itro
1个回答

6

正如我在评论中建议的那样,您应该尝试使用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:michael@uml.com'>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();
}

我收到了异常:Exception in thread "AWT-EventQueue-1" java.lang.NoClassDefFoundError: java/awt/Desktop - itro
这是我的Java版本:C:\Users\ash>java version 错误:注册表项“Software\JavaSoft\Java Runtime Environment\CurrentVersion”具有值“1.7.0_01”,但需要“1.7”。 错误:找不到java.dll 错误:找不到Java SE Runtime Environment。 - itro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接