【发布时间】:2015-05-22 22:46:33
【问题描述】:
我正在尝试调用 JFrame 之类的东西来使用 O-Auth 对用户进行身份验证。我实现了身份验证的所有后台需求,并使用默认浏览调用进行了测试:
Desktop.getDesktop().browse(java.net.URI.create(url));
使用默认浏览器,一切正常。 然后我尝试创建我的 owh webview 以在我的应用程序中调用。环顾四周,我发现了 oracle 实现 Oracle JavaFX+Swing example。 Oracle 实现工作但速度很慢。我在eclipse中复制粘贴代码,在java8下运行类。
当我放弃 Oracle 示例时,我发现了这个:
这更快更干净,但是当我调用 Application.launch(args); 时,我的应用程序挂起。
public class Test extends Application {
@Override
public void start(Stage stage) throws Exception {
StackPane root = new StackPane();
WebView view = new WebView();
WebEngine engine = view.getEngine();
engine.load("http://www.google.com.br/");
root.getChildren().add(view);
Scene scene = new Scene(root, 800, 600);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) throws IOException {
Application.launch(args);
}
}
如果我可以在另一个线程中调用Application.launch(args); 就足够了。
如何从我的应用程序中调用简单的 webView?
【问题讨论】:
-
你真的是指“另一个线程”吗?从哪个线程调用它应该没有任何区别。如果你从
Test类之外调用它,你需要 overloaded form:Application.launch(Test.class, args) -
如果应用程序的启动方法返回,我的问题将得到解决。但是在应用程序退出之前,启动方法不会返回。我想从我的 Swing 应用程序中调用 JFXApplication 并且不要阻止 Swing 应用程序。所以我需要一个新线程的调用。
-
在 Swing 中使用 JavaFX 的过程是使用 JFXPanel 而不是启动 JavaFX 应用程序 - 因此您的 Swing 代码不应该调用 JavaFX 应用程序启动方法。
标签: java swing javafx javafx-8