【问题标题】:How to show URL as a click-able URL in Table and allow them to open in default browser?如何在表格中将 URL 显示为可点击的 URL 并允许它们在默认浏览器中打开?
【发布时间】:2012-02-20 05:15:29
【问题描述】:

我有一个 Java 桌面应用程序,它在 JTable 中显示一些信息,其中可能包含一些单元格中带有一些文本的 URL。如果他/她点击它,我怎样才能只使 URL 可点击并允许用户在默认浏览器中打开它。

【问题讨论】:

    标签: java html swing url jtable


    【解决方案1】:

    这里是一个关于将文本显示为超链接的示例:HyperLink in JTable Cell

    【讨论】:

    • 奇怪的是,示例对Desktop.getDesktop().browse(url.toURI()); 的调用被注释掉了!我想知道这是什么逻辑?
    • 我不知道,但应该取消注释以启动浏览器
    • 我可以看到使用渲染器模拟翻转效果的吸引力,但我认为渲染器和编辑器的组合更加灵活。您是否运行过引用的示例?
    • 是的,它似乎按预期工作,具有翻转效果
    【解决方案2】:

    您可以在自定义TableCellEditor 中使用here 显示的方法。选择后,您可以browse() URI。

    附录:您可以将JEditorPane 用于您的编辑器组件,并使用addHyperlinkListener() 来监听与链接相关的事件。

    JEditorPane jep = new JEditorPane();
    jep.addHyperlinkListener(new HyperlinkListener() {
    
        @Override
        public void hyperlinkUpdate(HyperlinkEvent e) {
            HyperlinkEvent.EventType type = e.getEventType();
            final URL url = e.getURL();
            if (type == HyperlinkEvent.EventType.ENTERED) {
                // do desired highlighting
            } else if (type == HyperlinkEvent.EventType.ACTIVATED) {
                // open browser
            }
        }
    });
    

    【讨论】:

    • 谢谢,但我有两个问题,我的 JTable 是可编辑的,并且我在同一个单元格中有带有 URL 链接的文本。我想按原样显示文本(作为简单的文本,即不可点击),同时想在浏览器中打开 URL。
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2020-07-29
    • 2017-10-03
    • 2018-08-21
    相关资源
    最近更新 更多