如何使MigLayout 4.2与JavaFX 8协作?

Urs*_*pke 3 java miglayout java-8 javafx-2 javafx-8

试图将我的应用程序更新到Java 8,我发现JavaFX UI变得无法使用.整个屏幕都有严格的验证和重新绘制问题,我怀疑MigLayout(4.2)是罪魁祸首,因为其他人似乎也受到了影响:https: //code.google.com/p/miglayout/issues/detail ?ID = 6

我在github上提供了一个问题的运行示例:https: //github.com/UrsKR/miglayout-repaint

它说明在计算初始布局后将节点添加到MigPane时会触发此问题.

如何让他们两个像Java 7/JavaFX 2一样协作?在JavaFX 8中布局的行为方式是否有任何记录?

编辑:我已向JavaFX报告了相应的错误,他们将其归档为回归.也许没有办法使这种行为正确.

Urs*_*pke 5

在与MigLayout和JavaFX的开发人员交谈时,我发现没有办法让JavaFX 8和MigLayout 4.2合作.

目前,解决方案是将MigLayout更新为5.0-SNAPSHOT,可在Sonatype的Snapshot repo中使用.

其原因是 - 据我所知 - JavaFX 8每个脉冲只触发一次布局,而不是像JavaFX 2
那样多次触发布局.MigLayout 4.2有验证问题,在某些情况下更新屏幕而不更新,虽然它的布局网格无效.
由于每个脉冲多次触发布局,因此在后续布局过程中使用验证(稍后在布局过程中发生),从而正确地渲染布局.
通过切换到每脉冲一次的行为,JavaFX 8在MigLayout中暴露了这个问题,并且通过在每个布局传递之前验证布局来修复它.