gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 09:39:11 25 4
gpt4 key购买 nike

我正在学习 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 不加载任何内容。这是我的应用程序结构: WebView HTMLEditor

最佳答案

感谢@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");
}

屏幕截图:

Working app

关于java - 如何将本地 html 文件(不在我的类路径中)加载到 WebView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57238683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com