我在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和网站: