java - 如何让 MigLayout 4.2 与 JavaFX 8 协同工作?

标签 java javafx-2 java-8 javafx-8 miglayout

尝试将我的应用程序更新到 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/

相关文章:

java - 有时java枚举是一个字符串

java-8 - Java Streams遍历ResultSet对象

java - 如何在 TextInputLayout 中设置 OnClickListener

Java:Android:SQLite:使用 For 循环执行多次插入

java - 使用Slick在2D环境中检测碰撞

drag-and-drop - 在 javafx 中使用显示快照拖放 vbox 元素

JavaFX : avoid thread-code in Model Setters

java - 如何在javafx中实现GridView样式

java - 如何使用 "d. LLLL YYYY"模式从日期字符串创建 java.time.LocalDate?

java - 如何根据java 8中的匹配条件从2个不同的对象列表创建对象列表