我正在尝试创建一个包含复选框树项目的 JavaFX 树视图。我要求所有有孩子的节点都应该被禁用。但是这些节点的所有子节点都应该是可点击的。基本上,如果树项是叶子,它应该被启用和点击。这是我使用的当前代码。这会禁用带有子节点的节点,但问题是,由于它被禁用,我无法访问父节点中的代码。public class App extends Application{public static void main( String[] args ){ launch(args);}private List<Dependant> myList = new ArrayList();@SuppressWarnings("unchecked")@Overridepublic void start(Stage primaryStage) { CheckBoxTreeItem<String> rootItem = new CheckBoxTreeItem("Root"); final List<CheckBoxTreeItem<String>> treeItems = new ArrayList(6); for (int i = 0; i < 6; i++) { CheckBoxTreeItem<String> item = new CheckBoxTreeItem("L0"+i+""); item.setIndependent(true); treeItems.add(item); myList.add(new Dependant("0"+i+"", "type1")); } rootItem.getChildren().addAll(treeItems); rootItem.setExpanded(true); rootItem.setIndependent(true); CheckBoxTreeItem<String> rootItem2 = new CheckBoxTreeItem("folder"); final List<CheckBoxTreeItem<String>> treeItems2 = new ArrayList(6); for (int i = 0; i < 6; i++) { CheckBoxTreeItem<String> item = new CheckBoxTreeItem("L1"+i+""); item.setIndependent(true); treeItems2.add(item); myList.add(new Dependant("0"+i+"", "type2")); } rootItem2.getChildren().addAll(treeItems2); rootItem2.setIndependent(true); rootItem.getChildren().set(2,rootItem2); TreeView tree = new TreeView(rootItem);这不是我的应用程序的最终代码,它只是我在进行最终实现之前尝试过的示例代码。从代码中可以看出,由于方法isLeaf()不可用,单元格的 disabled 属性绑定到名称是否等于“文件夹” 。如果有人想知道为什么我需要禁用所有父节点,那是因为在最终实现中,我只需要在整个树视图中选择一项(因为单击父节点也会选择其所有子节点!)。
添加回答
举报
0/150
提交
取消