允许JEditorPane

时间:2018-11-26 21:50:18

标签: java html

我导入了一个要在JEditorPane中显示的HTML文件,并且在HTML代码中是链接。但是,在应用程序中,单击链接将不会打开任何内容。 HTML页面显示的很好,但是那些链接对我来说不起作用。它们是否在JEditorPane中被禁用?以及单击该如何使它们打开链接的网站?

static JPanel createResourcesPage() {
    finalResourcesPage = new JPanel(new BorderLayout());

    JEditorPane editorpane = new JEditorPane();

    File file = new File("src/resourcesPageHTML.html");
    try {
        editorpane.setPage(file.toURI().toURL());
    }
    catch (MalformedURLException e) {
        e.printStackTrace();
    }
    catch (IOException e) {
        e.printStackTrace();
    }

    editorpane.setEditable(false);

    JScrollPane scroll = new JScrollPane(editorpane);
    scroll.setVerticalScrollBarPolicy(
            JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    scroll.setPreferredSize(new Dimension(500, 300));

    finalResourcesPage.add(scroll);
    finalResourcesPage.add(editorpane);

    return finalResourcesPage;
}

编辑:忘记包括HTML文件不只包含链接。只是文件中有链接。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

final JEditorPane links = new JEditorPane();
editor.setEditorKit(JEditorPane.createEditorKitForContentType("text/html"));
editor.setEditable(false);

现在,您必须将编辑器设置为链接文本,然后向其中添加点击处理程序:

links.setText("<a href=\"http://www.google.com</a>");

links.addHyperlinkListener(new HyperlinkListener() {
    public void hyperlinkUpdate(HyperlinkEvent e) {
        if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
           // desired action for link
        }
    }
});

现在,您可以指定单击链接时发生的情况。如果要启动默认浏览器,请使用以下命令:

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