如何在不使用 JButton 的情况下触发 Java 应用程序上的链接

Posted

技术标签:

【中文标题】如何在不使用 JButton 的情况下触发 Java 应用程序上的链接【英文标题】:How to trigger links on Java application without use JButton 【发布时间】:2013-11-18 08:45:33 【问题描述】:

在我的 java 应用程序中,我有一个我想在默认浏览器中打开的链接列表:

根据这个答案Open a link in browser with java button?,如何打开它非常清楚。

我现在想知道的是,我怎么知道我触发了哪一个链接,因为它们都在一个文件中。

有人对此有什么好的建议吗?因为到目前为止,我唯一能想到的就是为每个链接创建一个 JButton 并通过侦听器检测它,但这似乎不是最有效的解决方案。链接需要单独打开,如果可能的话我想直接通过链接触发。

【问题讨论】:

您要一次打开所有这些吗?问题不是很清楚... sry,我会编辑 - 每一个都经过一段时间,而不是一次全部 仍不清楚。你想要一个按钮,一个接一个,一个接一个地打开链接,直到列表的末尾?请尝试澄清您实际想要实现的目标。 感谢您的帮助,但我找到了自己的答案 - 也许现在您会更清楚。 【参考方案1】:

我找到了自己的答案。 Java 提供了一个名为HyperlinkListener 的接口。使用HyperlinkListener,您可以检测触发了哪个链接。

在代码行中,这意味着:

    @Override
public void hyperlinkUpdate(HyperlinkEvent arg0) 

        if(arg0.getEventType().toString() == "ACTIVATED")
            System.out.println(arg0.getURL());  
            //openWebpage(arg0.getURL());


这个简单的代码会输出你想要触发的链接,在默认浏览器中打开你只需要将我的答案与this帖子的答案合并即可。

【讨论】:

以上是关于如何在不使用 JButton 的情况下触发 Java 应用程序上的链接的主要内容,如果未能解决你的问题,请参考以下文章

如何在不知道类型的情况下使用类的方法?

如何在不滚动的情况下触发滚动事件

如何在不实际拖放的情况下使用 jQuery UI Droppable 触发 Drop 事件?

如何在不触发 ConcurrencyException 的情况下删除相关的中间实体记录?

在不使用提交按钮的情况下触发标准 HTML5 验证(表单)?

Testflight 如何在不触发完整审查的情况下更新构建?