Files
timi-fx-ui/src/main/java/com/imyeyu/fx/ui/components/XTreeView.java
2025-07-14 15:08:16 +08:00

46 lines
920 B
Java

package com.imyeyu.fx.ui.components;
import com.imyeyu.fx.utils.SmoothScroll;
import javafx.collections.ObservableList;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
/**
* 不显示根节点的树形结构,实现多个根节点
*
* @author 夜雨
* @since 2021-04-26 01:34
*/
public class XTreeView<T> extends TreeView<T> {
private final TreeItem<T> dummyRoot = new TreeItem<>();
/** 默认构造 */
public XTreeView() {
dummyRoot.setExpanded(true);
setRoot(dummyRoot);
setShowRoot(false);
// 平滑滚动
SmoothScroll.virtual(this);
}
/**
* 设置根节点
*
* @param roots 根节点
*/
@SafeVarargs
public final void setRoots(TreeItem<T>... roots) {
dummyRoot.getChildren().addAll(roots);
}
/**
* 获取根节点列表
*
* @return 根节点列表
*/
public ObservableList<TreeItem<T>> getRoots() {
return dummyRoot.getChildren();
}
}