/** * 设置节点及其父节点的选中状态 * @param item 父节点 * @param checked 当前节点的选中状态 * @param grayed 当前节点的半选状态 */ static void checkPath(TreeItem item, boolean checked, boolean grayed) { if (item == null) return; if (grayed) { checked = true; } else { int index = 0; TreeItem[] items = item.getItems(); while (index < items.length) { TreeItem child = items[index]; // 如果有子节点是不完全选中或子节点的选中状态不一致,那么此节点也是不完全选中 if (child.getGrayed() || checked != child.getChecked()) { checked = grayed = true; break; } index++; } } item.setChecked(checked); item.setGrayed(grayed); checkPath(item.getParentItem(), checked, grayed); } /** * 设置节点及其子节点的选中状态 * @param item 当前节点 * @param checked 当前节点的选中状态 */ static void checkItems(TreeItem item, boolean checked) { item.setGrayed(false); item.setChecked(checked); TreeItem[] items = item.getItems(); for (int i = 0; i < items.length; i++) { checkItems(items[i], checked); } }
java如何选中节点_树结构节点部分选中的Java实现
最新推荐文章于 2022-11-15 11:43:59 发布