标签: javafx-18

TreeView 中的 JavaFX 布局问题

最近,我将应用程序从 JavaFX 8 更新到 JavaFX 18。迁移后,我发现了一些与TreeView. 如果我理解正确的话,在场景脉冲结束时,所有节点(实际上是父节点)都将完全渲染,并且变为isNeedsLayoutfalse,直到发生下一次更改。

这在 JavaFX 8 中按预期工作。而在 JavaFX 18 中,对于某些节点,即使在脉冲完成后isNeedsLayout标志仍然存在。true这是一个错误吗?还是故意这么实施的?

在下面的演示中,我尝试TreeView在脉冲完成后打印所有节点( 的子节点)状态。我可以清楚地看到两个 JavaFX 版本之间的输出差异。

谁能告诉我,如何确保所有节点都正确渲染/布局。

import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TreeCell;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Duration;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class TreeViewLayoutIssue extends Application {
    int k = 1;

    @Override
    public void start(Stage primaryStage) throws Exception …
Run Code Online (Sandbox Code Playgroud)

javafx javafx-8 javafx-18

5
推荐指数
1
解决办法
544
查看次数

标签 统计

javafx ×1

javafx-18 ×1

javafx-8 ×1