我想使用答案中建议的解决方案: 防止 JavaFX 中的手风琴崩溃 ,以防止 JavaFX 中的手风琴完全崩溃。
我的问题是:为什么在expandedPaneProperty 上添加的监听器使用Platform.runLater 来调用setCollapsible(false)?
事实上,如果我删除 Platform.runLater,在折叠/展开窗格之后,它们的内容会由于某种原因消失。那么为什么 runLater 解决了这个问题呢?
我想使用答案中建议的解决方案: 防止 JavaFX 中的手风琴崩溃 ,以防止 JavaFX 中的手风琴完全崩溃。
我的问题是:为什么在expandedPaneProperty 上添加的监听器使用Platform.runLater 来调用setCollapsible(false)?
事实上,如果我删除 Platform.runLater,在折叠/展开窗格之后,它们的内容会由于某种原因消失。那么为什么 runLater 解决了这个问题呢?
ChangeListener< T>的文档指出:
通常,在此方法中修改观察值被认为是不好的做法。
该方法指的是:
void changed(ObservableValue<? extends T> observable, T oldValue, T newValue);
RunLater确保窗格将在 JavaFX 应用程序线程的下一次运行时被修改,因此在安全的情况下进行修改。