Как изменить страницу после нажатия на тег <a>в JEditorPane? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть элемент "a" на html-странице с href для другого сайта. В настоящее время, когда я нажимаю на элемент a на странице, отображаемой в JEditorPane, сайт JEditorpane не меняет сайт. Он не будет перенаправлен на местоположение HREF. Как бы это исправить, сохранив перенаправленную страницу в JEditorPane? Спасибо!

Код сайта:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<a href="https://reddit.com"><img src="cat.jpeg" width="300" height="300" /></a>
</body>
</html>

Код JFrame и JEditorPane:

public class Gui 
{
    JFrame frame = new JFrame();
    JEditorPane htmlContent = new JEditorPane();

    public void loadScreen() throws MalformedURLException, IOException 
    {
        frame.setUndecorated(true);
        frame.setOpacity(1.0F);
        htmlContent.setEditable(false);
        htmlContent.setPage(new URL("RANDOM SITE"));
        frame.add(new JScrollPane(htmlContent));
        frame.setVisible(true);
    }
}

1 Ответ

0 голосов
/ 19 июня 2019

Если вы хотите, чтобы ссылки, отображаемые в JEditorPane, загружали новую страницу в панели одним щелчком мыши, вам нужно добавить прослушиватель, что-то вроде этого:

htmlContent.addHyperlinkListener(e->{
    if ( e.getEventType () == HyperlinkEvent.EventType.ACTIVATED ) {
        URL url = e.getURL ();
        // fetch the new page from the URL and load it into the JEditorPane
    }
});
...