java - Swing JDialog/JTextPane 和 HTML 链接

标签 java html swing user-interface jtextpane

我在 swing 中使用 html 页面 JTextPane在 JDialog 中。
在 html 中我有一个 <a href="mailto:email@adress.com">John</a>
当我通过资源管理器查看网页时,当鼠标转到链接时,我可以看到 mailto .
当我点击链接时,我收到错误消息“未安装默认邮件客户端”,但我猜这是因为我的 PC 没有配置 Outlook 或其他一些程序。
当我从我的 Swing 应用程序打开 JDialog 时,我看到 John突出显示为链接,但当我按下链接时没有任何反应。
我原以为会收到与浏览器相同的错误消息。
所以我的问题是链接是否可以通过 Swing 应用程序打开?

谢谢

最佳答案

工具提示(显示目标超链接地址)和按下时的操作都不会自动发生,您必须对其进行编码:首先,使用 ToolTipManager 注册 Pane ,对于后者,注册一个 HyperlinkListener,类似于:

    final JEditorPane pane = new JEditorPane("http://swingx.java.net");
    pane.setEditable(false);
    ToolTipManager.sharedInstance().registerComponent(pane);

    HyperlinkListener l = new HyperlinkListener() {
        @Override
        public void hyperlinkUpdate(HyperlinkEvent e) {
            if (HyperlinkEvent.EventType.ACTIVATED == e.getEventType()) {
                try {
                    pane.setPage(e.getURL());
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }

        }

    };
    pane.addHyperlinkListener(l);

该示例是关于在同一 Pane 中打开页面。如果你想激活默认的浏览器/邮件客户端,请让桌面(jdk1.6 的新手)为你做这件事

关于java - Swing JDialog/JTextPane 和 HTML 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7291956/

相关文章:

java - 如果 GUI 是在构造函数中定义的,如何添加或删除 jtable?

java - 如何在 JTextfied 中只接受 0 到 8 之间的数值?

java - 使用 findelements 时如何从 xpath 获取文本

java - & 位运算符如何在这里工作?

java - 使用 JNI 检索 jint 值时的随机值

javascript - 从 js 更改 css 属性会破坏 css 动画

javascript - 将类(class)的背景图片制作成幻灯片

javascript - 想要将 Javascript 中的值转换为 HTML 表单以提交到 Firebase 数据库

从 Eclipse 运行时不显示 Java JFrame 窗口

java - 使用 JAXB 解析 XML