Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调整应用程序窗口大小后,JavaFX UI元素悬停样式未正确呈现_Java_Css_User Interface_Javafx_Resize - Fatal编程技术网

调整应用程序窗口大小后,JavaFX UI元素悬停样式未正确呈现

调整应用程序窗口大小后,JavaFX UI元素悬停样式未正确呈现,java,css,user-interface,javafx,resize,Java,Css,User Interface,Javafx,Resize,有时,具有悬停样式的某些UI元素根本不会渲染,并且会在其所在位置保留一个白色框。只有当我调整应用程序窗口的大小并且UI元素完全超出应用程序窗口的原始边界时,才会发生这种情况。在将鼠标指针从悬停位置移除后,下图中显示的按钮也不会立即正确渲染,因此每当需要重新绘制按钮时,可能会出现此问题 我已经设置了样式,但是删除它们没有效果。只有在进行其他处理(如运行固件更新功能)时,问题才会出现。这告诉我,可能有一些东西占用了UI时间,但我本以为这会影响到每个UI元素,而不仅仅是某些元素 另一个注意事项是,

有时,具有悬停样式的某些UI元素根本不会渲染,并且会在其所在位置保留一个白色框。只有当我调整应用程序窗口的大小并且UI元素完全超出应用程序窗口的原始边界时,才会发生这种情况。在将鼠标指针从悬停位置移除后,下图中显示的按钮也不会立即正确渲染,因此每当需要重新绘制按钮时,可能会出现此问题

我已经设置了样式,但是删除它们没有效果。只有在进行其他处理(如运行固件更新功能)时,问题才会出现。这告诉我,可能有一些东西占用了UI时间,但我本以为这会影响到每个UI元素,而不仅仅是某些元素

另一个注意事项是,UI已从Swing转换为JavaFX,因此所有线程都不包括Task或Platform.runlater()的使用。此后,我确保所有UI更新都使用Platform.runlater(),但我尚未将所有未更新UI的原始线程转换为任务。下面我将介绍运行固件更新的框架


编辑:能够在不启动固件更新的情况下重现问题,因此我认为这与处理阻塞UI呈现无关。该问题仅在使用某些UI后发生。因此,我删除了上面发布的代码。这让我相信这与用户界面的实际布局有更大的关系。

我相信我已经解决了这个问题。我使用ListView保存对象,使用cellfactory使用自定义UI呈现每个单元格。当用项目填充列表时,会产生额外的线程来检索单元格中每个对象的信息。与对象关联的变量绑定到自定义UI中的视图属性。我没有使用Platform.runlater()用新信息更新这些属性。将集合更新为runlater后,问题似乎已得到解决。

没有任何明显的问题会浮现在脑海中,我怀疑如果没有一个简单的示例,它会重现问题,您将无法在此处解决此问题。。。