3 回答

TA贡献1841条经验 获得超3个赞
使用JavaFX的唯一方法是将Application子类化或使用JFXPanel,正是因为它们准备了env和toolkit。
阻塞线程可以使用来解决new Thread(...)。
尽管如果您在与Swing / AWT相同的VM中使用JavaFX,我建议使用JFXPanel,但是您可以在此处找到更多详细信息:将AWT与JavaFx一起使用是否可以?

TA贡献1779条经验 获得超6个赞
创建用于测试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
}
}
即使这篇文章与测试无关,也可以帮助我进行单元测试
如果没有BeforeClass initToolkit,则在单元测试中实例化TableView将产生一条消息,提示缺少工具包
添加回答
举报