gpt4 book ai didi

java - 如何使用 JavaFX WebView 打开本地文本文件

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

是否可以使用 JavaFX WebView 打开本地文本文件?我已经尝试过以下代码,但它不起作用。我怎样才能启用此功能?

WebView wv = new WebView();
wv.getEngine().setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {

@Override
public WebEngine call(PopupFeatures p) {
Stage stage = new Stage(StageStyle.UTILITY);
WebView wv2 = new WebView();
stage.setScene(new Scene(wv2));
stage.show();
return wv2.getEngine();
}
});

wv.getEngine().loadContent("<a href="file:///C:\Users\Dev\infor.txt">Open File</a>");

StackPane root = new StackPane();
root.getChildren().add(wv);

Scene scene = new Scene(root, 300, 250);

primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();

最佳答案

是的,您可以使用 JavaFX WebView 打开本地文本文件。

示例应用:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class WebViewWithLocalText extends Application {

@Override
public void start(Stage stage) throws MalformedURLException {
String location =
new File(
System.getProperty("user.dir") + File.separator + "test.txt"
).toURI().toURL().toExternalForm();

System.out.println(location);

WebView webView = new WebView();
webView.getEngine().load(location);

// use loadContent instead of load if you want a link to a file.
// webView.getEngine().loadContent(
// "<a href=\"" + location + "\">Open File</a>"
// );

Scene scene = new Scene(webView);
stage.setScene(scene);
stage.show();
}

public static void main(String[] args) {
launch(args);
}
}

将文本文件放置在运行程序时 System.out 报告的位置。

示例输出:

output

您提供的代码中存在一些错误:

  1. 你不能逃避引号。
  2. 您没有提供有效的文件 URI,而是提供了以文件协议(protocol)为前缀的 Windows 路径。
  3. 您对路径和驱动器说明符进行硬编码,这可能不是系统之间的可移植解决方案。

我没有 Windows 机器来测试,但也许这样的东西适合你的绝对路径。

wv.getEngine().loadContent("<a href=\"file:///C:/Users/Dev/infor.txt\">Open File</a>");

另请参阅:

关于java - 如何使用 JavaFX WebView 打开本地文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31177658/

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