使用WebView JavaFX在jar中使用Websites

时间:2016-03-23 16:03:05

标签: html javafx webview jar javafx-webengine

我在JavaFX中创建了一个简单的应用程序,它将fxml和一些网站复制到res文件夹中。 fxml位于res / gui,网站位于res / szenario。

当我从我的IDE运行我的代码时,GUI显示嵌入式WebView显示网站,我可以点击它们。 但是如果构建一个jar文件网站没有正确显示。缺少样式和逻辑。例如,我无法单击WebView中的按钮。

这是我的MainController代码:

public class MainController implements Initializable {

    @FXML 
    private WebView browser_id;
    WebEngine webEngine;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        webEngine = browser_id.getEngine();

        webEngine.getLoadWorker().stateProperty().addListener((obs, oldValue, newValue) -> {
            if (newValue == Worker.State.SUCCEEDED) {
                JSObject jsobj = (JSObject) webEngine.executeScript("window");
                jsobj.setMember("jsCallback", new JavaScriptCallback());
            }
        });

        webEngine.load(getClass().getResource("/res/szenario/home.html").toExternalForm());
    }

}

使用以下命令加载GUI:

Parent root = FXMLLoader.load(getClass().getResource("/res/gui/main.fxml"));

为什么fxml在jar中运行而网站不在?

修改: 我添加了res文件夹的图像,其中包含GUI和网站:

Project structure preview

0 个答案:

没有答案