我想用WebView实例化许多JFrames,它将工作,只要打开第一个WebView后,至少有一个WebView仍然活着,并且JFrame(以及其他一切)不处理。WebView不能再工作后关闭
经过一番检查后,似乎在关闭所有WebView JFrame之后,Platform.runLater()不再运行在带有WebViewPanel的JFrame的下一个实例上。
以下是简化代码:
public class WebViewPanel{
private JFXPanel jfxPanel;
private WebView view;
private WebEngine webEngine;
private JPanel panel;
public WebViewPanel(JPanel panel){
this.panel = panel;
panel.setVisible(true);
createScene();
}
private void createScene(){
Platform.runLater(new Runnable(){
@Override
public void run(){ //Runnable no longer runs after all JFrames with WebViewPanels are closed
jfxPanel = new JFXPanel();
view = new WebView();
webEngine = view.getEngine();
jfxPanel.setScene(new Scene(view));
panel.add(jfxPanel);
jfxPanel.setVisible(true);
}
});
}
}
所以,我必须做什么来解决这个问题呢?
我认为你应该使用[JFXPanel](http://docs.oracle.com/javase/8/javafx/api/javafx/embed/swing/JFXPanel.html)。也许它在那里,你只是简化了你的代码示例。 [MVCE](http://stackoverflow.com/help/mcve)可能会有所帮助。 – jewelsea 2014-11-05 00:29:17