netBeans platform技术进行介绍.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
netBeans platform技术进行介绍

Node、Explorer视图、Action和 Presenter 大多数应用程序都有一个或者多个数据模型要呈现给用户。所有的?UI工具集都包含一些公共控件,可以用来向用户显示数据结构。以?Swing为例,JList和JTree就是这样的控件。但是,这些控件使用起来多少有些繁琐——因为开发者必须精通很多细节,例如,必须考虑如何在视图中绘制单元等问题。而且,假如想将界面从列表控件转换到树型控件的话,就必须重写很多代码。在一般的Swing应用程序中,不同类型的数据模型包含不同的对象,并且,每一个数据模型都需要自行处理选择改变、双击和显示弹出菜单等操作。这样一来,对于每一个树型或者列表控件,开发者都需要编写大量单调乏味、模式化的代码。 在基于NetBeans的应用程序中,也有一些常规操作需要处理。例如,由“全局选择上下文(global selection context)”决定哪些菜单项和工具栏按钮是可用的,以及在用户单击这些菜单项和按钮时会发生什么。因此,控件必须与“全局选择”绑定在一起。 “节点API”(Node API)处理所有这些问题。使用它可以轻松地创建树型样式的模型。而“Explorer API”提供一系列绘制这些模型的UI组件。结合使用它们,开发者可以在一个org.openide.nodes.Node对象的基础上创建很多不同类型的UI组件——列表、树型、树型表格、下拉框等——这些组件显示Node对象及其子节点,同时还有内置的弹出菜单,其菜单项对应Node对象的getActions()方法所返回的Actions对象。“Explorer视图”为显示数据模型提供了一套丰富、统一的UI组件。而Node则提供了一个表示层,用来让任意的数据模型与某种Explorer视图相匹配。 “Explorer API” 组件可以很方便地与全局选择相绑定,这样就可以轻松地让工具栏按钮和菜单项在适当的时候激活或者失效。借助于此,诸如“属性表单”(Property Sheet)和“导航器”(Navigator)之类的上下文环境视图就可以根据当前被选择的Node显示不同的内容。 结合使用这两种API,可以轻松地用极少量的代码创建出丰富的用户界面。 9.1 Node API Node(节点)代表某个底层对象,这些对象会以某种形式在图形界面中展现给用户。Node本质上并不是数据模型,而是一个表示层。Node通过提供一些必要的属性,使得底层模型对象更加人性化。一个Node拥有: 一个显示名称,它易读易懂,并且可以被本地化为不同的语言。 一段描述,它可以出现在提示框中。 一个图标,通常在列表或者树型中出现在Node的显示名称旁边。 一些Action(操作),它们会出现在弹出菜单中。 Children,每一个Node都有一个org.openide.nodes.Children对象,可以用来创建子节点。 一些属性,它们以 “取值(getter)”和“设值(setter)”方式存在。Explorer API提供了一个叫做“属性表单”的UI组件,可以用来显示和修改任何对象的属性。 Node并不是被当作数据模型使用的。事实上,它们所构成的表示层间接地连接起数据模型(数据模型可能是磁盘上的文件,或者可以在列表或者树型结构中显示给用户的任何有用的东西)和用户。 NetBeans IDE中的所有(或者说几乎所有)的列表和树型组件都是一些Node的“Explorer视图”。例如,“文件”窗口中的列表实际上是一系列的Node,它们表示磁盘上的目录;“项目”窗口中各个不同Node为磁盘上的目录提供了不同的逻辑视图。NetBeans中还有许多其他的UI组件提供了磁盘上或者“系统文件系统”中目录的视图。“新建项目”向导的第一页,实际上是一个“主/从”视图。它的左半部分是一个 “系统文件系统”中的目录列表,而右半部分显示的是左边所选目录中的内容(如图9-1所示)。 图9-1 “新建项目”向导是一个“主/从”视图。它左边显示一些目录,右边显示的是所选目录中的文件 正如将在第10章所演示的,获得用户磁盘上或者“系统文件系统”中的任何一个目录的Node相当简单。只要有一个FileObject对象,就可以通过调用 DataObject.find(theFileObject).getNodeDelegate() 获取一个Node对象。利用它,开发者可以在UI组件中以某种方式显示该目录或者文件。假如希望为某个代表目录的Node对象提供自定义的组件、显示名称或者操作的话,可以创建一个FilterNode对象。它包装了原来的那个Node,并且允许用户重写它的任何属性。 在为基于NetBeans的应用程序开发用户界面时,开发者会经常与下列类和常量打交道: AbstractNode 尽管它的名字中

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档