使用getHostServices从WebBrowser打开PDF

时间:2016-04-24 15:16:47

标签: java javafx nullpointerexception javafx-webengine

我对JavaFX方面相当新,但到目前为止我已经设法构建了一个接收本地html文件的Java Web浏览器,但是html文件我还包含了pdf的链接。我读到你可以使用getHostServices()在系统上打开默认的pdf应用程序,但我一直得到空指针异常。一切都正确导入。

public class AbsorbBrowser extends Region{

public Application a;

final WebView browser = new WebView();
final WebEngine webEngine = browser.getEngine();

public AbsorbBrowser(){

    webEngine.load(getClass().getResource("/resources/test.html").toExternalForm());
    getChildren().add(browser);

    browser.setOnMouseClicked(new EventHandler<MouseEvent>() {

        public void handle(MouseEvent event) {

            String str = webEngine.getLocation();
            String newStr = str.substring(8);

            a.getHostServices().showDocument(newStr);

           // hostServices.showDocument(file.getAbsolutePath());

        }
    });

我拥有它,以便当点击鼠标时它会将该位置(URL)分配给字符串,该字符串将指向该位置:

文件:/// C:/Users/Me/Desktop/Absorb/bin/resources/test.pdf

所以我取一个子字符串并删除前8个字符,只留下C:/目录,然后将该字符串传递给getHostServices()。showDocument();

空指针异常

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException

a.getHostServices().showDocument(newStr);

我尝试使用java文件,但仍无济于事。我要感谢任何帮助或建议,谢谢。

0 个答案:

没有答案