Java、JavaFx:在 JavaFX 容器中插入一个 HTML&JS(静态,无互联网)项目
Java, JavaFx : Inserting a HTML&JS(static,no internet) project inside a JavaFX container
我正在执行一项任务,我们需要将我们的一个 HTML 和基于 JS 的项目放入 JavaFX 项目或任何其他合适的容器中。目的是创建一个可以直接部署的应用程序,并且可以防止任何用户查看 HTML & JS 的源代码。
前段时间在看JavaFX的时候,看到它支持JS,可以用JS。有什么方法可以创建一个容器,我可以通过给定路径等将 HTML&JS 文件放入其中?
我该怎么做?无论我想做什么,它叫什么。任何帮助、指点、建议都会很好。
初试
public class Main extends Application {
private Scene scene;
MyBrowser myBrowser;
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("Test web");
myBrowser = new MyBrowser();
scene = new Scene(myBrowser, 1920, 1200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
class MyBrowser extends Region {
final String hellohtml = "hello.html";
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
public MyBrowser(){
URL urlHello = getClass().getResource("hello.html");
webEngine.load(urlHello.toExternalForm());
getChildren().add(webView);
}
}
正如@sillyfly 建议使用 WebView
:
File f = new File(..);
// ..
final WebView webview = new WebView();
webview.getEngine().load(f.toURI().toURL().toString());
对我来说最困难的部分总是找出用于引用文件的正确位置。
另一种选择是,当您拥有字符串形式的 HTML 以将其作为内容加载时:
String html = ...
webview.getEngine().loadcontent(html)
上的 JavaDoc
我正在执行一项任务,我们需要将我们的一个 HTML 和基于 JS 的项目放入 JavaFX 项目或任何其他合适的容器中。目的是创建一个可以直接部署的应用程序,并且可以防止任何用户查看 HTML & JS 的源代码。
前段时间在看JavaFX的时候,看到它支持JS,可以用JS。有什么方法可以创建一个容器,我可以通过给定路径等将 HTML&JS 文件放入其中?
我该怎么做?无论我想做什么,它叫什么。任何帮助、指点、建议都会很好。
初试
public class Main extends Application {
private Scene scene;
MyBrowser myBrowser;
@Override
public void start(Stage primaryStage) throws Exception{
primaryStage.setTitle("Test web");
myBrowser = new MyBrowser();
scene = new Scene(myBrowser, 1920, 1200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
class MyBrowser extends Region {
final String hellohtml = "hello.html";
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
public MyBrowser(){
URL urlHello = getClass().getResource("hello.html");
webEngine.load(urlHello.toExternalForm());
getChildren().add(webView);
}
}
正如@sillyfly 建议使用 WebView
:
File f = new File(..);
// ..
final WebView webview = new WebView();
webview.getEngine().load(f.toURI().toURL().toString());
对我来说最困难的部分总是找出用于引用文件的正确位置。
另一种选择是,当您拥有字符串形式的 HTML 以将其作为内容加载时:
String html = ...
webview.getEngine().loadcontent(html)
上的 JavaDoc