NetBeans学习笔记1

官方选择管理教程1:http://platform.netbeans.org/tutorials/nbm-selection-1.html

文章目的:

关于用户当前选择的内容,NetBeans有两种基本概念, TopComponents的LookUp和当前活动的Nodes。

本文介绍了使用Lookup来处理我们当前所选择的内容,可以理解为程序维护了一个MAP,这个map的key是类的名称,value是类的实例。将代码根据功能分成多个模块后,每个模块通过访问这个map获取到其他模块的对象,做相关的处理。这种解决方法有效地将代码解耦成不同模块,同时彼此又可以进行数据的传递。

 

知识点:

1、使用Module Development > Window创建的是singleton topcomponents,这种组建在一个程序中只存在一个实例

2、获取当前程序中获得焦点的对象可以通过直接调用:Utilities.actionsGlobalContext()

3、TopComponent的componentOpened()方法是在组件在窗体中被显示时调用;componentClosed()方法是用户在tab页签上单击X关闭时被调用;

4、LookupListener类的resultChanged()方法是在监听的对象变化时被调用

5、非Singleton的TopComponent无法使用模板来创建,需要手动创建JPanel后,继承TopComponent,同时,包中需要添加依赖TopComponentLookups、Utilities API、UI Utilities API。同时需要手动注册组件到layer配置文件,如:

@TopComponent.Description( preferredID = "MyEditorTopComponent", persistenceType = TopComponent.PERSISTENCE_ALWAYS)@TopComponent.Registration( mode = "editor", openAtStartup = true)@ActionID( category = "Window", id = "org.myorg.myeditor.MyEditorTopComponent")@ActionReference( path = "Menu/Window")@TopComponent.OpenActionRegistration( displayName = "#CTL_MyEditorActio")@NbBundle.Messages({ "CTL_MyEditorActio=MyEditor"})

6、InstanceContent类提供了方法让我们可以修改Lookup中的内容

a、首先,在容器中声明一个对象:private final InstanceContent content = new InstanceContent();

b、将该对象通过AbstractLookup关联到上下文中:associateLookup (new AbstractLookup (content));

c、在需要修改内容的地方,设置content的内容:content.set(Collections.singleton (obj), null);

 

7、在第5步的添加模块项目步骤中:

代码名称基(Code Name Base)唯一标识一个模块。一个模块可以简单理解为一个单独的jar包。

 8、一个模块对其他模块而言,默认是不可见的,必须设置其为公共包其他模块才能引用

设置方法:在模块右键选择属性,在API版本控制的公共包下面,勾选对应的包

勾选后,在项目元数据(project.xml)中将添加声明,当编译时,该信息会编译到模块的manifest中

9、一个模块要使用另一个模块,必须首先建立依赖,方法是选择模块后右键选择属性,在库中添加依赖关系

10、如果希望在当前应用程序中根据选择进行相关处理,需要:

a、组件继承LookupListener,实现resultChanged方法

b、在组件打开的时候,需要通过Utilities的Utilities.actionsGlobalContext()获得全局上下文,获取上下文中的lookup result,并对result添加一个监听,以便在resultChanged方法中进行上下文处理

c、在组件关闭的时候,需要从lookup result中删除我们的监听

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值