JavaFX CheckBoxTreeItem:如果图形被扩展,图形将消失

时间:2015-03-10 09:39:42

标签: java javafx treeview

我有一堆CheckBoxTreeItem<MyClass>使用TreeView构建项目层次结构。我创建了一个新对象并将其添加到其父对象中:

CheckBoxTreeItem<MyClass> created = new CheckBoxTreeItem<MyClass>(
    myClassObj, new Label("label");

parent.getChildren().add(created); // parent is another CheckBoxTreeItem

除此之外,我使用这样的CellFactory

myTreeView.setCellFactory(CheckBoxTreeCell.<MyClass>forTreeView());

问题:如果我折叠/展开GUI中的项目,标签偶尔会消失,留下应该呈现的空白区域。所以它有点,但不可见。但是,显示了Label(来自MyClass对象)的文本权限。我观察了我自己的类扩展CheckBoxTreeItemCheckBoxTreeCell的问题,但问题似乎更普遍,因为它可以使用默认类重现。如果您有任何想法,我会感谢任何提示。

编辑:这是一个MCVE - 只需展开并折叠一些复选框即可观察奇怪的行为:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.CheckBoxTreeCell;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class TreeViewSample3 extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        //create the root element
        CheckBoxTreeItem<String> rootItem = 
            new CheckBoxTreeItem<String>("Root", new Label("Root"));

        rootItem.setExpanded(true); 
        rootItem.setIndependent(true);

        final TreeView<String> tree = new TreeView<String>(rootItem);  
        tree.setCellFactory(CheckBoxTreeCell.<String>forTreeView());  

        //put some checkboxes to the tree
        for (int i = 0; i < 3; i++) {
            final CheckBoxTreeItem<String> child = 
                new CheckBoxTreeItem<String>("2nd level", new Label("tier 2"));
            final CheckBoxTreeItem<String> grandChild = 
                new CheckBoxTreeItem<String>("3rd level", new Label("tier 3"));

            child.getChildren().add(grandChild);
            rootItem.getChildren().add(child);

        }

        StackPane root = new StackPane();
        root.getChildren().add(tree);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

编辑2:错误的屏幕截图。只有在您反复展开/折叠树中的项目时才会出现这种情况。似乎底部的项目以某种方式未正确呈现。注意,使用的版本是8.40。

enter image description here

0 个答案:

没有答案