Netbeans平台的API: 节点API(Node)

Netbeans使用Node将JavaBeans或者其他具备属性的容器以树状的结构展现。Netbeans中有专门的Node包负责使用和创建节点,同时提供Cookies(以后会讲到)和动作,能够被查看器以树状结构显示。
  1. 什么是节点?可以说节点是任何Netbeans中的数据对象的包装器,这些对象通过节点来显示和执行任务(通过节点的动作),一般来说这些数据对象由数据系统接口(Datasystem API)提供。当然数据对象也可以根据特定需要单独创建。你看到的查看器中的图标,对话框,组件窗口都是基于节点的,他们通过查看器API显示。节点本身不存储数据,这个任务是由数据对象完成,节点仅仅是数据对象的表现层。实际上,节点是JavaBean概念的延伸。从开发完整的企业级应用来讲(例如Netbeans本身)JavaBean忽略了很多东西:完整的层次支持,Cookie和动作,节点特定的动作(例如序列化节点,剪切粘贴等),关键的一点是JavaBean需要自省机制,不管属性列表是否需要,都要自省,这带来严重的性能问题。而节点能够支持动态修饰属性列表。
  2. 节点的显示。节点的显示是靠查看器API(Explorer API)的,通过查看器API,节点可以使用BeanTreeView, TreeView, MenuView, TreeTableView等形式来显示节点的整个树或者子树。在查看器中可以触发节点支持的动作(通常右键显示这些动作),基于Cookie的动作开关(例如节点的选择会影响工具栏某些工具是否可用,比如编译按钮),剪切复制等动作,以及对子节点的排序,创建,删除,以及节点图标名字的状态改变等等。
  3. 节点是活的!最重要的是,节点是活的组件。在系统中发生的任何事件都可能让查看器中的视图更新,比如可视化Swing开发中,如果将一个组件拖到可视化开发面板中,那么相应的查看器中的组件树就会刷新,新的组件被加入到组件树中。同时任何查看器中发生的动作都可能影响系统,比如Netbeans全局配置查看器中如果改变了工具栏的配置,那么工具栏会立刻更新。而这一切都是通过节点接口的富事件通知机制(Rich Event Notification)实现的。
  4. 常见的节点类型:
  • 基于数据对象的数据节点:
  • 数据目录节点:
  • 磁盘上用户自己开发的JavaBean:
  • JavaBean衍生的节点:
  • 高级选项的设置节点
  • 组件窗口
  • 调试器中的断点
  • 项目桌面节点
节点的注意问题:
  1. 节点Node是抽象类,不是接口,具有两个子类:AbstractNode, FilterNode.
  2. AbstractNode不是抽象类!通常自定义的节点要继承AbstractNode或他的子类.
  3. 自定义的节点要提供一个子节点列表给节点构造器,如果这个节点是叶节点,传参数Children.LEAF给构造器
  4. 从AbstractNode继承而来的自定义节点不需要覆盖或实现特定方法(AbstractNode不是抽象类),不过有几个方法通常需要覆盖:一些编辑方法例如AbstractNode.canCopy()等,他们默认的是true, 每个节点有两个名字,一个是显示名字,一个是内部系统名字,内部名字用来序列化和反序列化等使用。Node.setName(), Node.setDisplayName(). 还有节点的图片,例如展开时的节点图片等。
  5. 节点的属性,集和表单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值