0
我的使用情況如下:JavaFX平臺似乎是死的(關閉/墜毀)
- 我有9行的GridBagLayout的1列
- 前8行包含JPanels
- 最後一行含有JFXPanel
- 欲切換JFXPanel與任何JPanels的(用於顯示HTML,在下面的代碼稱爲htmlPanel)
I D類似於:
if(htmlToFront){
gridBagConstraints.gridy = i - 1;
}
else{
gridBagConstraints.gridy = 8;
}
jPanel1.add(htmlPanel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
//some other gridbag initializations
if(htmlToFront){
gridBagConstraints.gridy = 8;
}
else{
gridBagConstraints.gridy = i - 1;
}
jPanel1.add(jPanel, gridBagConstraints);
該開關是否正確完成 - JFXPanel和JPanel位於正確的位置。但是幾次開關後,場景就不再顯示了。我的意思是,一兩個開關後,一切正常,我的htmlPanel內的html代碼正常顯示。但是在另外幾個開關之後(並且在開關之前等待幾秒鐘),html代碼不再顯示。
我做了一些測試,似乎Platform.runLater從未調用任何Runnable對象發生此問題後。這就像它被困在另一份工作上,我猜這與html代碼沒有顯示(或者平臺已關閉,但我不知道如何檢查它或爲什麼會關閉)有關。
爲什麼會發生這種情況?也許我做開關的方式不好?在切換過程中幾毫秒內JFXPanel不可顯示是否存在問題?
更普遍的問題是爲什麼Platform.runLater不做任何事情?
您正在混合JavaFX和Swing的任何具體原因?僅使用一個可能會更簡單。 無論如何 - 發佈包含任何「Platform.runLater」或「SwingUtilities.invokeLater」的組件可能有助於查明問題...... – Itai
我需要Swing才能使用vlcj播放電影。 vlcj只能在Canvas中工作(我需要播放多達8個電影 - > 8個包含畫布的jpanel)。我需要使用FX,因爲我需要顯示HTML5代碼以及正在播放的電影。我只爲調試目的調用了Platform.runLater,以查看平臺是否仍然運行。我通常不會調用它 - 如果沒有我調用Platform.runLater或SwingUtilities.invokeLater,則停止顯示html代碼。 – Anakin001
這也不是一個調整大小爲0像素的問題,fxPanel和webView具有適當的大小... – Anakin001