【发布时间】:2015-11-01 18:30:28
【问题描述】:
我正在编写一个使用基于 Swing 的用户界面的 Java 程序,但是我需要访问 WebView,所以我实现了一个 JFXPanel 来处理这个问题。 WebView 应该将广告横幅加载到程序中,用户可以根据需要单击该程序。目前,当点击广告时,新页面正在WebView 内加载。如果可能的话,我希望在用户的默认浏览器中打开页面并刷新包含广告的页面。我怎样才能做到这一点?
【问题讨论】:
我正在编写一个使用基于 Swing 的用户界面的 Java 程序,但是我需要访问 WebView,所以我实现了一个 JFXPanel 来处理这个问题。 WebView 应该将广告横幅加载到程序中,用户可以根据需要单击该程序。目前,当点击广告时,新页面正在WebView 内加载。如果可能的话,我希望在用户的默认浏览器中打开页面并刷新包含广告的页面。我怎样才能做到这一点?
【问题讨论】:
engine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>()
{
@Override
public void changed(ObservableValue<? extends Worker.State> observable, Worker.State oldValue,
Worker.State newValue)
{
String toBeopen =
engine.getLoadWorker().getMessage().trim();
System.out.println("tobeopen: " + toBeopen);
if (toBeopen.contains("http://") || toBeopen.contains("https://")) {
engine.getLoadWorker().cancel();
try {
Desktop.getDesktop().browse(new URL(toBeopen).toURI());
}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (URISyntaxException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
});
【讨论】: