`
alartin
  • 浏览: 209911 次
社区版块
存档分类
最新评论

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. 节点的属性,集和表单

分享到:
评论

相关推荐

    java源代码

    通过对这个类的分析,我们了解了如何利用NetBeans的API来定制IDE的功能,这对于开发基于NetBeans的插件非常有用。此外,代码还展示了如何使用Java集合框架(如`ArrayList`)来管理和操作数据,以及如何使用监听器...

    Java3D-API第一章

    - **节点(Node)**:场景图的基本构建单元,可以是几何体、变换、灯光等。 - **场景图(Scene Graph)**:一个有向无环图,用来组织和管理三维空间中的对象。 - **分支组(BranchGroup)**:用于将多个节点组合在一起。 -...

    JAVA3D学习系列

    - **节点(Node)**: 是场景图中的基本组成单元,可以表示三维空间中的任何物体。 - **变换(Transform)**: 控制节点的位置、旋转和缩放等属性。 - **外观(Appearance)**: 定义节点的颜色、纹理等外观特征。 - **行为...

    Java3D 教程 ch0

    它通常是一个树形结构,其中每个节点(Node)代表一个特定的对象或一组对象。 2. **几何体(Geometry)**:构成场景的基本元素,如球体、立方体等。 3. **变换(Transform)**:用于改变对象的位置、旋转角度或缩放比例。 ...

    Java开源的下一代社区平台Symphony.zip

    简介 Symphony([ˈsɪmfəni],n.交响乐)是一个现代化... NetBeans:全宇宙暂时排名第三的 IDE IntelliJ IDEA:全宇宙暂时排名第二的 IDE 下一代的社区系统,为未来而构建 标签:java社区 symphony

    java课程设计说明书-班级通讯录.doc

    - Node.java类定义了链表的节点,包含学生信息的相关字段。 5. **文件操作**: - 虽然未明确提及,但在实际的通讯录管理系统中,可能会涉及到文件操作,如保存和读取学生信息到文件,这通常需要使用Java的I/O流类...

    javafx数据库简单开发示例

    JavaFX提供了一个基于场景图的模型来构建UI,其中Scene是顶级容器,包含各种Node元素如按钮、文本框等。通过布局管理器,我们可以组织这些节点并控制它们在界面上的排列和大小。 在与数据库的交互中,JavaFX通常...

Global site tag (gtag.js) - Google Analytics