JEditorPane中的超链接
我在JEditorPane ex中显示的链接很少:
http://www.google.com/finance?q=NYSE:C
http://www.google.com/finance?q=NASDAQ:MSFT
我希望我能够点击它们并在浏览器中显示它
有什么想法怎么做?
这有几个部分:
正确设置JEditorPane
JEditorPane
需要具有上下文类型text/html
,并且对于可点击的链接,它必须是不可编辑的:
final JEditorPane editor = new JEditorPane(); editor.setEditorKit(JEditorPane.createEditorKitForContentType("text/html")); editor.setEditable(false);
添加链接
editor.setText("C, MSFT");
添加链接处理程序
默认情况下,单击链接将不会执行任何操作; 你需要一个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()); }
- Hibernate中的DataBase加密
- Spring引导Hibernate错误java.lang.NoSuchMethodError:javax.persistence.JoinColumn.foreignKey()Ljavax / persistence / ForeignKey;
- Java SWT应用程序 – 带到前面
- 如何创建支持通用ID的通用实体模型类,包括自动生成的ID?
- 如何从servlet发送参数
- IntelliJ Idea无法识别Lombok的注释
- SessionFactory注入不起作用
- Java如何使用私钥文件而不是PEM来解密?
- Java – 是否可以将JMenuBar添加到JFrame的装饰窗口?