当前位置: 首页 > 面试题库 >

JOptionPane中的可点击链接

王凯旋
2023-03-14
问题内容

我正在使用JOptionPane来显示一些产品信息,并且需要向网页添加一些链接。

我发现您可以使用包含html的JLabel,因此我提供了一个<a href>链接。该链接在对话框中显示为蓝色并带有下划线,但是不可单击。

例如,这也应该起作用:

public static void main(String[] args) throws Throwable
{
    JOptionPane.showMessageDialog(null, "<html><a href=\"http://google.com/\">a link</a></html>");
}

如何在JOptionPane中获得可点击的链接?

谢谢,保罗。

编辑 -例如解决方案

public static void main(String[] args) throws Throwable
{
    // for copying style
    JLabel label = new JLabel();
    Font font = label.getFont();

    // create some css from the label's font
    StringBuffer style = new StringBuffer("font-family:" + font.getFamily() + ";");
    style.append("font-weight:" + (font.isBold() ? "bold" : "normal") + ";");
    style.append("font-size:" + font.getSize() + "pt;");

    // html content
    JEditorPane ep = new JEditorPane("text/html", "<html><body style=\"" + style + "\">" //
            + "some text, and <a href=\"http://google.com/\">a link</a>" //
            + "</body></html>");

    // handle link events
    ep.addHyperlinkListener(new HyperlinkListener()
    {
        @Override
        public void hyperlinkUpdate(HyperlinkEvent e)
        {
            if (e.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED))
                ProcessHandler.launchUrl(e.getURL().toString()); // roll your own link launcher or use Desktop if J6+
        }
    });
    ep.setEditable(false);
    ep.setBackground(label.getBackground());

    // show
    JOptionPane.showMessageDialog(null, ep);
}

问题答案:

您可以将任何组件添加到JOptionPane。

因此,添加一个JEditorPane来显示您的HTML并支持HyperlinkListener。



 类似资料:
  • 我试图在我的< code>Browser类(在eclipse中创建)中实现一个历史按钮,并且我希望按钮中的链接是可点击的。下面是当用户按下按钮< code>History时启动的代码: 在上面的代码中,是一个包含以前访问过的所有网页的列表。 我尝试过使用这里介绍的方法:JOptionPane中的可点击链接,我让它工作了。问题是,此解决方案仅允许我预定义URL:s,但我希望显示我的列表,并且其中的U

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

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

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

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

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