Java 如何使WebView检测到与服务器的连接失败
我在Swing应用程序中使用了以下JavaFXJava 如何使WebView检测到与服务器的连接失败,java,swing,webview,javafx-2,Java,Swing,Webview,Javafx 2,我在Swing应用程序中使用了以下JavaFXWebView 我希望在连接到服务器失败时检测事件 engine.getLoadWorker() .exceptionProperty() .addListener(new ChangeListener<Throwable>() { public void changed(ObservableValue<? extends Throwable> o, Throwable old, final
WebView
我希望在连接到服务器失败时检测事件
engine.getLoadWorker()
.exceptionProperty()
.addListener(new ChangeListener<Throwable>() {
public void changed(ObservableValue<? extends Throwable> o, Throwable old, final Throwable value) {
if (engine.getLoadWorker().getState() == FAILED) {
SwingUtilities.invokeLater(new Runnable() {
@Override public void run() {
JOptionPane.showMessageDialog(
panel,
(value != null) ?
engine.getLocation() + "\n" + value.getMessage() :
engine.getLocation() + "\nUnexpected error.",
"Loading error...",
JOptionPane.ERROR_MESSAGE);
}
});
}
}
});
engine.getLoadWorker()
.exceptionProperty()
.addListener(新的ChangeListener(){
public void changed(observeValue我们应该监视状态属性而不是异常属性
engine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
@Override
public void changed(ObservableValue<? extends State> observable, State oldValue, final State newValue) {
if (newValue == FAILED) {
final int result = JOptionPane.showConfirmDialog(
panel,
MessagesBundle.getString("error_message_unable_connect_to_internet"),
MessagesBundle.getString("error_title_unable_connect_to_internet"),
JOptionPane.YES_NO_OPTION);
if (result == JOptionPane.YES_OPTION) {
if (loadedURL != null) {
engine.load(loadedURL);
}
}
}
}
});
engine.getLoadWorker().stateProperty().addListener(新的ChangeListener()){
@凌驾
公共无效已更改(可观察值)