Recursion 创建树视图宽度递归的多级菜单

Recursion 创建树视图宽度递归的多级菜单,recursion,javafx,menu,treeview,Recursion,Javafx,Menu,Treeview,我有以下数据库 我使用地图作为一般信息组 public static Map<String, List<TblCategory>> mapHierarchy() { Map<String, List<TblCategory>> mapHierarchy = new HashMap<>(); try { prepareStatement = connection.prepareSt

我有以下数据库

我使用地图作为一般信息组

public static Map<String, List<TblCategory>> mapHierarchy() {
        Map<String, List<TblCategory>> mapHierarchy = new HashMap<>();
        try {
            prepareStatement = connection.prepareStatement("SELECT * FROM `TblCategory` ORDER BY `name`");
            resultSet = prepareStatement.executeQuery();
            while (resultSet.next()) {
                TblCategory TblCategory = new TblCategory();
                TblCategory.setID(resultSet.getString("parentID"));
                List<TblCategory> memberHierarchy = mapHierarchy.get(TblCategory.getParentID());
                if (memberHierarchy == null) {
                    memberHierarchy = new ArrayList<>();
                    mapHierarchy.put(TblCategory.getParentID(), memberHierarchy);
                }
                TblCategory.setName(resultSet.getString("name"));
                memberHierarchy.add(TblCategory);
            }
        } catch (SQLException ex) {
            Logger.getLogger(HierarchyServices.class.getName()).log(Level.SEVERE, null, ex);
        }
        return mapHierarchy;
    }
公共静态映射映射层次结构(){
Map mapHierarchy=新建HashMap();
试一试{
prepareStatement=connection.prepareStatement(“从`TBLCategray`中选择*按`name`排序”);
resultSet=prepareStatement.executeQuery();
while(resultSet.next()){
TblCategory TblCategory=新TblCategory();
setID(resultSet.getString(“parentID”);
List memberHierarchy=mapHierarchy.get(tblcategray.getParentID());
if(memberHierarchy==null){
memberHierarchy=新建ArrayList();
mapHierarchy.put(TBLCategray.getParentID(),memberHierarchy);
}
TblCategory.setName(resultSet.getString(“名称”);
memberHierarchy.add(tblcategrary);
}
}catch(SQLException-ex){
Logger.getLogger(HierarchyServices.class.getName()).log(Level.SEVERE,null,ex);
}
返回映射层次;
}
我使用地图创建了一个多层菜单,我不知道如何执行,下面是我将继续做的

CheckBoxTreeItem cbtHierarchy;
CheckBoxTreeItem<String> cbtNameParent;
CheckBoxTreeItem<String> cbtName;
public void initialize(URL url, ResourceBundle rb) {
   Map<String, List<TblCategory>> mapHierarchy = HierarchyServices.mapHierarchy();
        mapHierarchy.forEach((String t, List<TblCategory> u) -> {
            showHierarchy(t, u, cbtHierarchy);
        });
}



 private void showHierarchy(String primary, List<TblCategory> u, CheckBoxTreeItem<String> cbtHierarchy) {
        if (primary.isEmpty()) {
            cbtParentName = new CheckBoxTreeItem<>(primary);
            cbtHierarchy.getChildren().add(cbtParentName);
        } else {
     showHierarchy(TblCategory.getParentID(), HierarchyServices.mapHierarchy().get(TblCategory.getParentID()), cbtHierarchy);
        }
    }
CheckBoxTreeItem-cbtHierarchy;
CheckBoxTreeItem cbtNameParent;
CheckBoxTreeItem cbtName;
公共void初始化(URL、ResourceBundle rb){
Map mapHierarchy=HierarchyServices.mapHierarchy();
mapHierarchy.forEach((字符串t,列表u)->{
showHierarchy(t、u、cbtHierarchy);
});
}
私有void showthierarchy(字符串primary、列表u、CheckBoxTreeItem cbtHierarchy){
if(primary.isEmpty()){
cbtParentName=新的CheckBoxTreeItem(主);
cbtHierarchy.getChildren().add(cbtParentName);
}否则{
showHierarchy(TblCategory.getParentID(),HierarchyServices.maphhierarchy().get(TblCategory.getParentID()),cbtHierarchy);
}
}

请帮帮我

“请帮帮我!既不是问题,也不是问题陈述。你的问题/问题是什么?您好,对不起,我的英语不好,我想帮助创建递归使用菜单地图