我想用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