如何将本地 html 文件(不在我的类路径中)加载到 WebView?

How can I load a Local html file (not in my classpath) to WebView?

我正在学习 javafx 并正在创建一个 TodoList 应用程序。我想包括某些功能,如文本样式、使用项目符号列表等,为此我在我的应用程序中添加了一个 HTMLEditor,它存储 html 文件供我的 WebView 加载。为了测试 html 文件的保存和加载,我保存了一个示例 'test.html' 文件(不在我的类路径中)并希望 WebView 加载它。 这是我的一些代码:

Main.fxml

<?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 Controller.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 不加载任何内容。 这是我的应用程序结构:

感谢@Slaw 和@Sidrick,问题已解决。 原始代码中需要的更改是在代码的 engine.load() 部分添加 file://

工作代码

@FXML private WebView webView;



    @FXML
    public void initialize() throws IOException{
        //Some ArrayList Initialization 

        WebEngine engine = webView.getEngine();
        engine.load("file:///home/jyotiproy/Todolist/test2.html");
    }

截图: