尝试将我的应用程序更新到 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 中布局的行为方式是否有任何记录在案的更改?
编辑:我已经报告了相应的 bug to JavaFX ,他们将其归档为回归。 也许没有办法使它正确运行。
最佳答案
与 MigLayout 和 JavaFX 的开发人员交谈,我发现没有办法让 JavaFX 8 和 MigLayout 4.2 配合。
目前,解决方案是将 MigLayout 更新为 5.0-SNAPSHOT,可在 Sonatype's Snapshot repo 中找到.
据我所知,其原因是 JavaFX 8 每个脉冲仅触发一次布局,而不是像 JavaFX 2 中那样触发多次。
MigLayout 4.2 有验证问题,在某些情况下它更新了屏幕而不更新,尽管它的布局网格是无效的。
由于布局在每个脉冲中触发多次,因此在后续布局过程中使用了验证(稍后在布局过程中发生),从而正确呈现布局。
通过切换到每脉冲一次的行为,JavaFX 8 在 MigLayout 中暴露了这个问题,并通过在每次布局传递之前验证布局来解决这个问题。
关于java - 如何让 MigLayout 4.2 与 JavaFX 8 协同工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22893824/