NetBeans学习笔记2

来源:互联网 发布:ps软件破解版 编辑:程序博客网 时间:2024/05/20 14:42

官网tutorial地址:http://platform.netbeans.org/tutorials/nbm-selection-2.html

 

1、Node API是一个表示层,连接了数据模型和显示界面。

Node是通用的层级关系的对象,它包含:

a、子节点

b、动作:一组可以在弹出菜单中显示的动作

c、显示名称:一个易读的可以被本地化的显示名称

d、图标:一个在图形界面显示的图标

 

知识点:

1、BeanTreeView是基于JTree的,用了显示Node及其子节点的API,集成了查找、右键菜单等功能 

2、使用Node需要引入AbstractNode API,即和AbstractNode建立依赖关系

3、AbstractNode类并非一个抽象类,它实现了Node通用的方法。可以通过传递一个Children对象来创建一个AbstractNode对象,然后设置显示名称,设置图标,便可以获得一个Node对象,在界面中显示

4、当Children对象第一次被激活时,会调用ChildrenFactory.createKeys来生成子节点相关的key,而真正的节点是通过方法createNodeForKey根据Key来创建的:

Node result = new AbstractNode( Children.create(new EventChildFactory(), true), Lookups.singleton(key));

当Node被选中时,Lookups.singleton(key)创建的lookup对象会被TopComponent的Lookup代理,进一步被全局的Lookup代理

5、当一个Explorer被添加到一个容器后,它会在容器及容器的父类中寻找实现了ExplorerManager.Provider接口的类,Explorer通过该类提供的ExplorerManager来构造要显示的内容

6、Utilities.actionsGlobalContext也是一个Lookup,它代理TopComponents的Lookup。ExplorerUtils.createLookup(ExplorerManager, ActionMap)所创建的Lookup也会代理Explorer中被选中Node的Lookup

7、简单概括就是:

a、让当前的容器实现了ExplorerManager.Provider接口,该接口提供一个ExplorerManager对象,该对象实际控制了要显示的内容

b、在容器中添加Explorer

add(new BeanTreeView(), BorderLayout.CENTER);

c、初始化ExplorerManager的数据

mgr.setRootContext(new AbstractNode(Children.create(new EventChildFactory(), true)));

d、连接ExplorerManager和容器的Lookup

associateLookup(ExplorerUtils.createLookup(mgr, getActionMap()));

 

几种view类型的实际效果:

IconView

ListView

双击一个节点后,进入子层节点:

ChoiceView

MenuView

原创粉丝点击