JEditorPane 中的超链接
我在JEditorPane ex中显示了几个链接:
http://www.google.com/finance?q=NYSE:C
http://www.google.com/finance?q=NASDAQ:MSFT
我希望我应该能够单击它们,并且它显示在浏览器中
任何想法如何做到这一点?
我在JEditorPane ex中显示了几个链接:
http://www.google.com/finance?q=NYSE:C
http://www.google.com/finance?q=NASDAQ:MSFT
我希望我应该能够单击它们,并且它显示在浏览器中
任何想法如何做到这一点?
这有几个部分:
需要具有上下文类型,并且链接需要不可编辑才能可单击:JEditorPane
text/html
final JEditorPane editor = new JEditorPane();
editor.setEditorKit(JEditorPane.createEditorKitForContentType("text/html"));
editor.setEditable(false);
您需要将实际标签添加到编辑器中,以便将它们呈现为链接:<a>
editor.setText("<a href=\"http://www.google.com/finance?q=NYSE:C\">C</a>, <a href=\"http://www.google.com/finance?q=NASDAQ:MSFT\">MSFT</a>");
默认情况下,单击链接不会执行任何操作;你需要一个超链接列表来处理
它们:
editor.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
// Do something with e.getURL() here
}
}
});
如何启动浏览器进行处理取决于您。如果您使用的是 Java 6 和支持的平台,一种方法是使用 Desktop
类:e.getURL()
if(Desktop.isDesktopSupported()) {
Desktop.getDesktop().browse(e.getURL().toURI());
}