3 回答

TA貢獻1841條經(jīng)驗 獲得超3個贊
使用JavaFX的唯一方法是將Application子類化或使用JFXPanel,正是因為它們準備了env和toolkit。
阻塞線程可以使用來解決new Thread(...)。
盡管如果您在與Swing / AWT相同的VM中使用JavaFX,我建議使用JFXPanel,但是您可以在此處找到更多詳細信息:將AWT與JavaFx一起使用是否可以?

TA貢獻1779條經(jīng)驗 獲得超6個贊
創(chuàng)建用于測試javaFX tableview更新的單元測試時,我使用了以下命令
public class testingTableView {
@BeforeClass
public static void initToolkit() throws InterruptedException
{
final CountDownLatch latch = new CountDownLatch(1);
SwingUtilities.invokeLater(() -> {
new JFXPanel(); // initializes JavaFX environment
latch.countDown();
});
if (!latch.await(5L, TimeUnit.SECONDS))
throw new ExceptionInInitializerError();
}
@Test
public void updateTableView() throws Exception {
TableView<yourclassDefiningEntries> yourTable = new TableView<>();
.... do your testing stuff
}
}
即使這篇文章與測試無關(guān),也可以幫助我進行單元測試
如果沒有BeforeClass initToolkit,則在單元測試中實例化TableView將產(chǎn)生一條消息,提示缺少工具包
添加回答
舉報