2014-04-06 2 views
3

내 응용 프로그램을 Java 8로 업데이트하려고하면 JavaFX UI를 사용할 수 없게됩니다. 이 화면 전체에 심각한 검증 및 다시 칠하는 문제가 있고, 다른 사람뿐만 아니라 그것으로 고생하는 것 때문에 내가 범인으로 MigLayout (4.2)을 의심 : https://code.google.com/p/miglayout/issues/detail?id=6MigLayout 4.2를 JavaFX 8과 공동으로 만드는 방법은 무엇입니까?

나는 GitHub의에서 문제의 실행 예제를 제공하고 있습니다 : https://github.com/UrsKR/miglayout-repaint

초기 레이아웃 계산 후 노드를 MigPane에 추가 할 때 문제가 발생 함을 보여줍니다.

두 사람이 Java 7/JavaFX 2 에서처럼 공동 작업을 수행하는 방법은 무엇입니까? 레이아웃이 JavaFX 8에서 작동하는 방식에 변경 사항이 문서화되어 있습니까?

편집 : 회귀로 대응하는 bug to JavaFX을보고했습니다. 이 동작을 올바르게 수행 할 방법이 없을 수도 있습니다.

답변

5

MigLayout 및 JavaFX의 개발자와 이야기하면서 JavaFX 8 및 MigLayout 4.2를 공동으로 만들 수있는 방법이 없다는 것을 알게되었습니다.

현재로서는 MigLayout을 Sonatype's Snapshot repo에서 사용할 수있는 5.0-SNAPSHOT으로 업데이트하는 것이 해결책입니다.

그 이유이다 - 2.
MigLayout 4.2했다 검증 문제 자바 FX의 경우와 같은 특정 상황에서, 대신 여러 번에, 자바 FX 8 번만 펄스 당 레이아웃을 트리거합니다 - 내가 알기까지로 레이아웃 격자가 유효하지 않더라도 업데이트하지 않고 화면을 업데이트했습니다.
레이아웃은 펄스 당 여러 번 트리거되었으므로 이후의 레이아웃 단계에서 유효성 검사 (레이아웃 패스에서 나중에 발생)가 사용되어 레이아웃이 올바르게 렌더링됩니다.
펄스 당 행동으로 전환함으로써, JavaFX 8은 MigLayout에서이 문제점을 드러내 었으며, 각 레이아웃 패스 이전에 레이아웃의 유효성을 검사하여 문제를 해결했습니다.