【问题标题】:How can I make image link work in JtextPane?如何使图像链接在 JtextPane 中起作用?
【发布时间】:2013-04-28 09:58:05
【问题描述】:

我想在我的电脑上提供一个图片链接到 jtextpane 上的一行。 我将“text/html”ttype 给 jtextpane

 jTextPane1.setContentType("text/html");  

我为给图像写了这段代码:

html 文本:

<img src=  file:/"+myimageplace+" alt=\"Click to Open Image\" width=\"30\" height=\"30\">

这适用于显示图像。

但我想将该图像提供给这样的图像:

<a href=\"file:/"+myimageplace+">\"<img src=  file:/"+mytext+" alt=\"Click to Open Image\" width=\"30\" height=\"30\"></a>

但这不起作用?

我该怎么做? 谢谢。

【问题讨论】:

  • 如需尽快获得更好的帮助,请发帖SSCCE
  • 其实这个例子不需要太多的SSCCE....只是更好地理解提问者想要什么。
  • @Andrew Thompson 刚刚注意到您是该网站的主机 :)
  • @user2328779 如果您的问题是链接不起作用,您应该将问题编辑为:“如何使图像链接在 JtextPane 中起作用?”
  • @meewoK 错了!尝试将My Documents/ 之类的内容作为myimageplace 的值。

标签: java swing jtextpane


【解决方案1】:

您需要有一个与链接点击相关的事件/链接处理程序才能工作。 即使您呈现 HTML,如果没有特定的链接处理程序来处理点击,它也不会打开窗口。

我从这里引用:Hyperlink in JEditorPane

添加链接处理程序

默认情况下点击链接不会做任何事情;你需要一个 HyperlinkListener 来处理它们:

editor.addHyperlinkListener(new HyperlinkListener() {
    public void hyperlinkUpdate(HyperlinkEvent e) {
        if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
           // Do something with e.getURL() here
        }
    }
});

如何启动浏览器来处理 e.getURL() 取决于您。如果您使用 Java 6 和受支持的平台,一种方法是使用 Desktop 类:

if(Desktop.isDesktopSupported()) {
    Desktop.getDesktop().browse(e.getURL().toURI());
}

【讨论】:

  • 所以请告诉我该怎么做
  • 答案已更新,提供更多信息和链接。另请阅读相关链接,其中包含有关您需要的其他信息:)
  • 这可以工作,但我想知道桌面是否可以在任何地方工作?
  • 我检查了stackoverflow.com/questions/102325/…,似乎在java6之后应该支持桌面 - 但不是在所有平台上,所以它也取决于操作系统。我正在进一步检查......这完全是另一个问题:)
  • 我建议您也可以使用:mkyong.com/java/open-browser-in-java-windows-or-linux 在不支持桌面的情况下,以便拥有更强大的系统。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多