用Java SWT实现MSN风格的下拉框 - 编程入门网
实现某某接口,或基类,假如设计成Vector中的元素必须是实现某一特定接口IElement,
这样的话,使用者就必须将其POJO作更改,以适应于此组件,而Object作为所有类的基类,因此可容纳任何类型的数据。接下来的一步很重要,是将数据与菜单关联起来。定义如下方法public void loadMenuItems(Object[] objects),顾名思义是一次性读取一组元素,完整的代码如下:
因为是load所有数据,所以第一步是将已有的数据清空,包括Vector中的数据和菜单中的菜单项。然后是对传入的Object数组作遍历,对于每一项,将之添加进集合然后创建一个菜单项,下一步item.setText(objects[i].toString()); 是设置菜单项的文字,toString()方法是Object的固有方法,但是实际应用时必须重写该方法的实现。接下来是item.setData(objects[i]); 为菜单项设置数据,这一步非常重要,SWT的每一个组件都具有public void setData (Object data)和public Object getData ()方法。还有Hash结构的public void setData (String key, Object value)和public Object getData (String key)。稍后会看到通过item.getData(); 取出创建时存入的数据。最后一行是为菜单项添加事件监听器,并使组件本身作为监听器,使组件本身实现SelectionListener接口,然后添加下面两个方法:
其中widgetDefaultSelected在单击回车时触发,对文本框这样的组件适用,widgetSelected是鼠标单击时触发适用于按钮、菜单项。因此我们只处理widgetSelected。
用Java SWT实现MSN风格的下拉框(5)时间:2011-01-19首先取得事件源即单击的菜单项,然后更新selectedItem引用指向这个菜单项保存的数据(先前通过setData方法添加的),接下来的代码不作解释,很容易理解。值得注意的是最后一行selected(item.getData()); 作用是当用户选中菜单某一项时,根据当前选择的那个数据自动执行相应的操作,selected方法定义如下:
与commit方法一样,是需要根据实际情况自定义处理逻辑的。 最后添加如下2个方法:
select用来设置当前选择第几个项,getSelectedItem返回当前用户选择的数据。 到此为止,ComboSelector已经完成,可以作为API使用了,下面我们编写一个程序测试该组件。 首先编写一个P |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |