java - 如何将本地 html 文件(不在我的类路径中)加载到 WebView?
问题描述
我正在学习 javafx 并正在创建一个 TodoList 应用程序。我想包含某些功能,如文本样式、使用项目符号列表等,为此我在我的应用程序中添加了一个 HTMLEditor,它存储我的 WebView 加载的 html 文件。为了测试 html 文件的保存和加载,我保存了一个示例“test.html”文件(不在我的类路径中)并希望 WebView 加载它。这是我的一些代码:
主文件
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.web.WebView?>
<GridPane xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" fx:controller="sample.Controller" hgap="10" vgap="10">
<WebView GridPane.rowIndex="0" GridPane.columnIndex="0" fx:id="webView"/>
</GridPane>
Fxml 控制器.java
public class Controller{
@FXML private WebView webView;
private WebEngine engine = webView.getEngine();
@FXML
public void initialize() throws IOException{
//code for some ArrayList initialization
engine.load("/home/jyotiproy/TodoOutput/test.html");
}
}
加载程序的 Main.java
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
primaryStage.setTitle("Todo List");
primaryStage.setScene(new Scene(root, 1200, 600));
primaryStage.show();
primaryStage.setResizable(false);
}
public static void main(String[] args) {
launch(args);
}
}
我没有收到任何错误或异常。“test.html”的路径中没有错字,html 编辑器工作正常并保存了 test.html,但 WebView 什么也不加载。这是我的应用程序结构:
解决方案
推荐阅读
- javascript - 正则表达式将字符串拆分为 args 而不会破坏引用的文本
- netty - Netty 中的 TCP FIN 重试和计时器实现
- python - 如果在 Python 中没有立即释放单击,我如何才能使按钮单击不执行?
- jupyter-notebook - 当 Jupyter Hub 中的 Python 文件很大时,无法添加目录扩展
- azure-data-factory - 在 .net 核心中使用 .NET SDK 创建 Azure 数据工厂?
- arrays - Hackerrank 中 numpy 的眼睛和身份功能。为什么测试用例失败了?
- uwp - CalendarDatePicker,TodayDate 在 UWP 中没有突出显示?
- python - 如果该行与DataFrame中的其他行有一定关系,如何删除行?
- node.js - 如何使用 node.js 和 pm2 将 verdaccio 发布到互联网?
- sql - sql中存储过程的嵌套循环不起作用