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);
}
}
请帮帮我“请帮帮我!既不是问题,也不是问题陈述。你的问题/问题是什么?您好,对不起,我的英语不好,我想帮助创建递归使用菜单地图