当前位置: 首页 > 知识库问答 >
问题:

来自 JOptionPane 中的 ArrayList 的可点击链接

公羊灿
2023-03-14

我试图在我的< code>Browser类(在eclipse中创建)中实现一个历史按钮,并且我希望按钮中的链接是可点击的。下面是当用户按下按钮< code>History时启动的代码:

private void showMessage() {
    try {
        String message = new String();
        message = history.toString();
        JOptionPane.showMessageDialog(null, message);
    } catch (NullPointerException e) {
        System.out.println("Something is wrong with your historylist!");
    }
}

在上面的代码中,history是一个包含以前访问过的所有网页的列表。

我尝试过使用这里介绍的方法:JOptionPane中的可点击链接,我让它工作了。问题是,此解决方案仅允许我预定义URL:s,但我希望显示我的列表历史记录,并且其中的URL是可点击的。

例如,如果我访问过https://www.google.com和https://www.engadget.com,列表将如下所示:历史=[www.google.com,www.engadget.com],并且两个链接都应该可以单独单击。

共有1个答案

白宏大
2023-03-14

这是当有人按下历史记录-按钮时应该调用的函数。它使用带有Hyperlink ListenerJEditorPane。下面代码中的字符串html添加了所需的html编码,以便Hyperlink Listener可以读取和访问网页。

public void historyAction() {
    String html = new String();
    for (String link : history) {
        html = html + "<a href=\"" + link + "\">" + link + "</a>\n";
    }
    html = "<html><body" + html + "</body></html>";
    JEditorPane ep = new JEditorPane("text/html", html);
    ep.addHyperlinkListener(new HyperlinkListener() {
        public void hyperlinkUpdate(HyperlinkEvent e) {
            if (e.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) {
                loadURL(e.getURL().toString());
            }
        }
    });
    ep.setEditable(false);
    JOptionPane.showMessageDialog(null, ep);
}
 类似资料:
  • 问题内容: 我正在使用JOptionPane来显示一些产品信息,并且需要向网页添加一些链接。 我发现您可以使用包含html的JLabel,因此我提供了一个链接。该链接在对话框中显示为蓝色并带有下划线,但是不可单击。 例如,这也应该起作用: 如何在JOptionPane中获得可点击的链接? 谢谢,保罗。 编辑 -例如解决方案 问题答案: 您可以将任何组件添加到JOptionPane。 因此,添加一个

  • 问题内容: 我在htmlunit中单击链接时遇到问题。我浏览了网站上的api(对此我不太了解),并查看了所有可以找到的示例代码,但是单击链接仍然有问题。 这是错误消息的顶部(它相当大,如果您希望我可以全部提交) 第一页加载正常,但是当我单击第二个链接时,出现此错误(链接为javascript)。这是我的代码的一部分 如果我执行打印链接2,则会得到: 起初我以为HtmlAnchor可能是个问题,所以

  • 我使用的是Bootstrap,以下操作不起作用:

  • 我正在尝试使用Swing发出文件传输通知。这个想法是,当我的应用程序通过网络提供文件时,用户会收到一个,询问他或她是否想接受所述文件报价,如果他们的答案是是,我想打开一个,以便他们可以浏览到他们想要保存文件的位置。 我遇到的问题是两者单独工作都很好,但是当我设置它们以便打开我的应用程序死锁时。 有人知道这里出了什么问题吗?我尝试了调试,但没有发现任何奇怪的行为来表明它为什么会死锁。 编辑:下面的示

  • 问题内容: 我正在FireFox中使用Selenium的IDE进行一些测试,我希望Selenium单击第二个链接(Text2)。知道我该怎么做吗?不幸的是,我无权访问HTML并且无法对其进行修改。记录功能似乎没有注册点击。 该代码附在下面。提前致谢! 问题答案: 硒也支持定位器。如果您知道确切的链接文本,则可以使用此定位器,但不能使用其他定位器。因此,对于上述示例:或。(有关其他定位器,请参见此网

  • 问题内容: 我的HTML页面中有一个SVG对象,并将其包装在锚点中,因此,当单击svg图像时,会将用户带到锚点链接。 当我使用此代码块时,单击svg对象不会将我带到Google。在IE8 <中,跨度文本是可单击的。 我不想修改我的svg图像以包含标签。 我的问题是,如何使svg图像可点击? 问题答案: 最简单的方法是不使用。而是使用标记,锚点应该可以正常工作。