调整应用程序窗口大小后,JavaFX UI元素悬停样式未正确呈现
有时,具有悬停样式的某些UI元素根本不会渲染,并且会在其所在位置保留一个白色框。只有当我调整应用程序窗口的大小并且UI元素完全超出应用程序窗口的原始边界时,才会发生这种情况。在将鼠标指针从悬停位置移除后,下图中显示的按钮也不会立即正确渲染,因此每当需要重新绘制按钮时,可能会出现此问题 我已经设置了样式,但是删除它们没有效果。只有在进行其他处理(如运行固件更新功能)时,问题才会出现。这告诉我,可能有一些东西占用了UI时间,但我本以为这会影响到每个UI元素,而不仅仅是某些元素 另一个注意事项是,UI已从Swing转换为JavaFX,因此所有线程都不包括Task或Platform.runlater()的使用。此后,我确保所有UI更新都使用Platform.runlater(),但我尚未将所有未更新UI的原始线程转换为任务。下面我将介绍运行固件更新的框架调整应用程序窗口大小后,JavaFX UI元素悬停样式未正确呈现,java,css,user-interface,javafx,resize,Java,Css,User Interface,Javafx,Resize,有时,具有悬停样式的某些UI元素根本不会渲染,并且会在其所在位置保留一个白色框。只有当我调整应用程序窗口的大小并且UI元素完全超出应用程序窗口的原始边界时,才会发生这种情况。在将鼠标指针从悬停位置移除后,下图中显示的按钮也不会立即正确渲染,因此每当需要重新绘制按钮时,可能会出现此问题 我已经设置了样式,但是删除它们没有效果。只有在进行其他处理(如运行固件更新功能)时,问题才会出现。这告诉我,可能有一些东西占用了UI时间,但我本以为这会影响到每个UI元素,而不仅仅是某些元素 另一个注意事项是,
编辑:能够在不启动固件更新的情况下重现问题,因此我认为这与处理阻塞UI呈现无关。该问题仅在使用某些UI后发生。因此,我删除了上面发布的代码。这让我相信这与用户界面的实际布局有更大的关系。我相信我已经解决了这个问题。我使用ListView保存对象,使用cellfactory使用自定义UI呈现每个单元格。当用项目填充列表时,会产生额外的线程来检索单元格中每个对象的信息。与对象关联的变量绑定到自定义UI中的视图属性。我没有使用Platform.runlater()用新信息更新这些属性。将集合更新为runlater后,问题似乎已得到解决。没有任何明显的问题会浮现在脑海中,我怀疑如果没有一个简单的示例,它会重现问题,您将无法在此处解决此问题。。。