幼儿饰品瑜伽美体用品微软
投稿投诉
微软创意
爱情通信
用品婚姻
爱好看病
美体软件
影音星座
瑜伽周边
星座办公
饰品塑形
搞笑减肥
幼儿两性
智家潮品

Idea插件之JTree

  树型结构是比较常规的分类思维方式,好的分类规则能事半功倍,比如文件目录、日常开发的代码,时序图是树型结构的另一种展示形式。这里介绍插件中JTree的基本结构。
  JTree对象生成及配置配置树对象paramtreethis。treenewJXTree();paramtreePaneltreePanelnewJScrollPane();滑动对象paramrootVisible是否展示根节点publicstaticvoidconfigTree(JTreetree,JScrollPanetreePanel,booleanrootVisible){tree配置DefaultTreeModelmodel(DefaultTreeModel)tree。getModel();model。setRoot(newDefaultMutableTreeNode());渲染树节点对象tree。setCellRenderer(newMTTreeCellRenderer());根节点不展示tree。setRootVisible(rootVisible);true或false决策根节点左上角折号是否展示tree。setShowsRootHandles(true);treePanel。setViewportView(tree);快速搜索newTreeSpeedSearch(tree);用于loading的关键配置ComponentUtil。putClientProperty(tree,ANIMATIONINRENDERERALLOWED,true);ComponentUtil。putClientProperty(tree,AUTOEXPANDALLOWED,false);ComponentUtil。putClientProperty(tree,SHRINKLONGRENDERER,true);}JTree事件包装paramtreeparamtreeContext树所属的对象,一般用于树操作时需要数据传递publicstaticvoidaddTreeEvent(JTreetree,TreePanelMarktreeContext){树节点被选中时tree。addTreeSelectionListener(e{DefaultMutableTreeNodemutableTreeNode(DefaultMutableTreeNode)tree。getLastSelectedPathComponent();if(nullmutableTreeNode!(mutableTreeNode。getUserObject()instanceofMTTreeCell)){return;}((MTTreeCell)mutableTreeNode。getUserObject())。treeSelectionListener(tree,mutableTreeNode,treeContext);});树节被点击,单击、双击tree。addMouseListener(newMouseAdapter(){OverridepublicvoidmouseClicked(MouseEvente){if(SwingUtilities。isLeftMouseButton(e)){finalintdoubleClick2;if(e。getClickCount()doubleClick){DefaultMutableTreeNodemutableTreeNode(DefaultMutableTreeNode)tree。getLastSelectedPathComponent();if(nullmutableTreeNode!(mutableTreeNode。getUserObject()instanceofMTTreeCell)){return;}((MTTreeCell)mutableTreeNode。getUserObject())。doubleClick(tree,mutableTreeNode,treeContext);}}}右键菜单OverridepublicvoidmouseReleased(MouseEvente){if(SwingUtilities。isRightMouseButton(e)){TreePathpathtree。getPathForLocation(e。getX(),e。getY());tree。setSelectionPath(path);DefaultMutableTreeNodemutableTreeNode(DefaultMutableTreeNode)tree。getLastSelectedPathComponent();if(nullmutableTreeNode!(mutableTreeNode。getUserObject()instanceofMTTreeCell)){return;}((MTTreeCell)mutableTreeNode。getUserObject())。rightClick(tree,mutableTreeNode,e,treeContext);}}});按回车键跳转到对应方法tree。addKeyListener(newKeyAdapter(){OverridepublicvoidkeyPressed(KeyEvente){super。keyPressed(e);if(e。getKeyCode()KeyEvent。VKENTER){DefaultMutableTreeNodemutableTreeNode(DefaultMutableTreeNode)tree。getLastSelectedPathComponent();if(nullmutableTreeNode!(mutableTreeNode。getUserObject()instanceofMTTreeCell)){return;}((MTTreeCell)mutableTreeNode。getUserObject())。keyEnter(tree,mutableTreeNode,treeContext);}}});}JTree递归包装成树节点
  一般是一个userObject对应一个DefaultMutableTreeNode,树型关系由DefaultMutableTreeNode来维护,后面删除、添加、上移、下移方便处理。渲染遍历树paramtreeparamrootTreeCellpublicstaticDefaultMutableTreeNoderenderRepeaterTree(JTreetree,MTTreeCellrootTreeCell){if(nullrootTreeCell){returnnull;}DefaultMutableTreeNoderootnewDefaultMutableTreeNode(rootTreeCell);renderRepeaterTreeSub(rootTreeCell。subTreeCell(),root);DefaultTreeModelmodel(DefaultTreeModel)tree。getModel();model。setRoot(root);expandOrCollapAll(tree,newTreePath(tree。getModel()。getRoot()),true);returnroot;}递归遍历数据结构生成树节点paramsubTreeCellsparamparentNodepublicstaticvoidrenderRepeaterTreeSub(ListMTTreeCellsubTreeCells,DefaultMutableTreeNodeparentNode){if(CollectionUtils。isEmpty(subTreeCells)){return;}for(MTTreeCellsubTreeCell:subTreeCells){DefaultMutableTreeNodetreeNodenewDefaultMutableTreeNode(subTreeCell);parentNode。add(treeNode);renderRepeaterTreeSub(subTreeCell。subTreeCell(),treeNode);}}JTree展开、收起树节点展开tree视图paramparenttreePathparamexpand是否展开publicstaticvoidexpandOrCollapAll(NotNullJTreetree,NotNullTreePathparent,booleanexpand){TreeNodenode(TreeNode)parent。getLastPathComponent();if(node。getChildCount()0){for(Enumerationlt;?enode。children();e。hasMoreElements();){TreeNoden(TreeNode)e。nextElement();TreePathpathparent。pathByAddingChild(n);expandOrCollapAll(tree,path,expand);}}展开或收起必须自下而上进行if(expand){tree。expandPath(parent);}else{tree。collapsePath(parent);}}JTree重新加载
  当子节点变化后需要重新加载已经变化的子节点重新加载paramjTreeparamnode变化的子节点的父节点publicstaticvoidreload(JTreejTree,DefaultMutableTreeNodenode){((DefaultTreeModel)jTree。getModel())。reload(node);}JTree渲染对象RendererpublicclassMTTreeCellRendererextendsColoredTreeCellRenderer{渲染每个节点paramtreeparamvalueparamselectedparamexpandedparamleafparamrowparamhasFocusOverridepublicvoidcustomizeCellRenderer(NotNullJTreetree,Objectvalue,booleanselected,booleanexpanded,booleanleaf,introw,booleanhasFocus){Objectobj((DefaultMutableTreeNode)value)。getUserObject();if(objinstanceofMTTreeCell){MTTreeCellnode(MTTreeCell)obj;IconloadingIconnode。loadingIcon();if(null!loadingIcon){setIcon(loadingIcon);}elseif(null!node。selfControlSelect()){if(node。selfControlSelect()){setIcon(node。iconSelected());}else{setIcon(node。iconUnselected());}}else{if(selected){if(null!node。iconSelected()){setIcon(node。iconSelected());}}else{if(null!node。iconUnselected()){setIcon(node。iconUnselected());}}}if(nullnode。fontAttributes()){append(node。cellShow());}else{append(node。cellShow(),node。fontAttributes());}}}}

体验阿尔法SHI版城市NCA,华为加持的人机共驾逻辑偏保守但在相当长的一段时间里,辅助驾驶系统的能力上限停留在自适应巡航、紧急制动、车道保持等L2级初级阶段。而随着芯片算力和电气架构这两大地基愈发坚实后,汽车的自动驾驶能力开始飞跃。……新能源智能驾驶汽车将会成为我国未来经济成长的核心动力今年以来的俄乌冲突,让俄罗斯石油产销受到相应的影响,欧佩克又减少对石油的生产和供应,从而使石油价格不断高涨,国内汽油价格一直维持在高位难以降价。基于出行成本等各方面的考虑……辽宁输给广东!杨鸣总结了三点原因,没提排兵布阵,还转移了火力12月15日消息,昨晚辽粤大战,最终广东99:85赢下了最终的胜利,本以为这场比赛过程会非常精彩,但令人没有想到是,广东在几员大将缺席的情况下,在开局极度不利的局面下,仍旧能完……多重折扣爆品秒杀海南离岛免税跨年狂欢季期间优惠多多海南离岛免税促消费新闻发布会。记者刘洋摄新海南客户端、南海网、南国都市报12月7日消息(记者王子遥)即日起,海南离岛免税跨年狂欢季正式启动。年末将至,海南各离岛免税经营主……为什么女生喜欢穿丝袜?丝袜该如何选择?穿丝袜的女人,总是给人们一种朦胧的美,这种美给人以高贵、含蓄、温柔的感觉,并且与合适的高跟鞋相配,将女人所特有的气质展现的一览无余。有些女人很不习惯穿长筒丝袜,其实,穿长……京东方回应拿下苹果手机大单传闻目前不便对单一客户信息透露过多本报记者贾丽在供应链风险加大的背景下,苹果正在引入更多合作伙伴。1月4日,天风国际证券知名苹果分析师郭明錤发文称,京东方已获得今年下半年发布的新款iPhone15与iPh……你是我遥不可及的幸福我时常在想,如果此时此刻你在我身边,那该有多幸运。在曾经可以结婚的年纪,没有匆匆忙忙的去按照他们的观念去生活,所以我现在可以庆幸后来遇到了你。周二刚刚见过,可是回来……世界最美黑人超模三婚嫁双性恋摇滚巨星,跨越生死与其相恋24年在绝美的五官面前,任何肤色都只是陪衬。她是索马里的黑珍珠,也是世界上的第一位黑人超模。出道即巅峰,她打破了白人统治的局面,也创造了不可磨灭的传奇!迈克尔杰克逊请她出……LPL各大战队转会大洗牌三大银河战舰诞生皆有望冲击S13世界2022英雄联盟S12过后,LPL赛区就迎来万众瞩目的转会期,因为很多选手都是短合约,而今年LPL赛区在世界赛成绩又不佳,所以必然会有很多战队进行大洗牌。转会过程必然是有人欢喜……超过了马云登顶中国的首富榜,大家对他了解多少?大家可能不知道钟睒睒是谁,但是只要看电视看广告应该都听过农夫山泉,有点甜这个语录,而钟睒睒就是农夫山泉的创始人。大家一定好奇就当当只卖矿泉水就能登上亚洲首富吗?且听我娓娓……网易迈起老碎步图片来源视觉中国文新立场NewPosition,作者VV,编辑李凡浙江奉化中学有三个杰出校友蒋介石、蒋经国、以及丁磊。学生时代的丁磊并不是个传统意义上循规蹈矩……神14太空出差6个月,堪称最繁忙的乘组,看看究竟多硬核?6月5日神14乘组出征太空神舟十四航天员乘组,6月5日前往空间站出差,担负着中国空间站建造的重任,为国出征再扣苍穹到目前已满6个月,与神舟十五号乘组完成首次在轨交接,圆满……
初夏,探访武则天避暑行宫遗址近段很忙,突然想起去年曾写的一篇旧文,正是近段时间想去的地方,特发此文以献给匆匆那年。五月初,夏木阴阴正可人,槐枝垂雪漫生香,人在画中沉醉时,突想起清风摆穗麦花白时节最适……这个新身份真伤脑筋自从怀孕之后,傅虹霞就开始变得紧张兮兮的,先是去专卖店买了最贵的防辐射衣服,天天穿在外套里面。手机再也不放口袋,接打电话一律用免提。而且每天上班都莫名紧张,生怕别人不小心突然撞……仙剑奇侠传七PS4PS5版现已发售,DLC特典公开发行商GSE宣布,《仙剑奇侠传七》PS4和PS5版本已于今日正式发售,数字及实体普通版售价238港币,数字限定豪华版售价398港币。《仙剑奇侠传七》是《仙剑奇侠传》系列的……CBA资讯速递,魔术队签约张镇麟,郭少罕见发怒,姚明点赞村B近期,CBA转会市场风波再起,郭艾伦、赵睿被传出离队消息,广东宏远的队长周鹏,更是已经加盟了深圳男篮。另外,丁彦雨航加盟上海队,可兰白克加盟山东队等等,而上海男篮一直追求的赵继……建设虚拟现实应用新地标,西城将打造马连道数字孪生街区北京日报客户端记者张骜通讯员杜颖日前,在2022全球数字经济大会西城分论坛上,西城区发布马连道产业升级的又一重要举措,将重点打造马连道国际茶数字孪生街区。数字孪生街……古剑奇闻录游戏介绍古典风韵浩瀚世界,云海之上玩出新仙,《古剑奇闻录》等待您!一、东方古韵美学,招式畅快战斗,享受极致新仙侠二、新颖酷炫神兽,华丽精妙时装,赚足超高回头率……王猛我为什么预测勇士夺冠?因为webelieve啊今天(北京时间4月17日)NBA季后赛第一个比赛日结束了,除了个别场次有球员特别发挥以外,相信大多数球迷朋友都能接受今天的比赛结果。赛后,知名NBA主播王猛先生也发表了自……苹果全家桶配件推荐,提升舒适度和使用效率CiaoBello,我是老房。作为一个拥有iPhone、iPad、Macbook、AppleWatch、AirPods、Airtag等苹果全家桶的果粉,在享受着苹果各设备……已成传奇!中国乒乓球世界冠军入籍卢森堡,今在海外出自传了北京时间6月12日,乒乓球名将倪夏莲晒出自己的新书,介绍关于这位前国乒世界冠军的私人生活与运动生涯,书名叫《来自天堂的礼物》。目前,倪夏莲是卢森堡国宝级的运动员。乒乓球赛……美国已用卢布支付宇航员乘俄飞船费用,美元霸权衰败或已开始?很多人都在想美元霸权到底什么时候会倒下?因为世界被美元收割已经太久太久了。美国肆无忌惮超发美元,导致全球财富不断被稀释。这次乌克兰战争被认为是俄罗斯主导的一次货币起义。那……OPPOReno8Pro开启首销,OPPOReno7沦为白菜较便宜的OPPOReno8Pro使用三星E4屏幕,而Pro版本使用BOE屏幕。对于显示效果,更多人可能会习惯三星。但是OPPOReno8Pro由于产品定位的原因,边框控制不如P……最终幻想起源正式解锁柯内利亚水晶能否再展光辉?日本两大老牌游戏厂商SQUAREENIX与KOEITECMO联手打造,并由野村哲也、野岛一成与TeamNinja协力开发的《最终幻想:起源》,日前已于3月15日0点正式解锁开服……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网