第8章--表格和数据绑定-《Eclipse从入门到精通》教学课件.ppt

上传人:可****阿 文档编号:83281151 上传时间:2023-03-29 格式:PPT 页数:27 大小:1.75MB
返回 下载 相关 举报
第8章--表格和数据绑定-《Eclipse从入门到精通》教学课件.ppt_第1页
第1页 / 共27页
第8章--表格和数据绑定-《Eclipse从入门到精通》教学课件.ppt_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《第8章--表格和数据绑定-《Eclipse从入门到精通》教学课件.ppt》由会员分享,可在线阅读,更多相关《第8章--表格和数据绑定-《Eclipse从入门到精通》教学课件.ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第8 8章章 表格和数据绑定表格和数据绑定在用户界面中,大量的数据需要通过表格或者树状列在用户界面中,大量的数据需要通过表格或者树状列表的形式显示。在表的形式显示。在SWT中,表格部件是中,表格部件是Table,树状列表,树状列表部件是部件是Tree。这两个部件的使用比其他部件复杂一些。特。这两个部件的使用比其他部件复杂一些。特别是这两个部件在实际应用中往往需要和数据库关联,更别是这两个部件在实际应用中往往需要和数据库关联,更增添了更多的难度。所以这两个部件都分别独立安排一章增添了更多的难度。所以这两个部件都分别独立安排一章进行学习。在本章将学习进行学习。在本章将学习SWT中中 Table的

2、用法。的用法。8.1 Table8.1 Table的基本用法的基本用法一个一个Table部件,从简单到复杂,可以演变出各种各部件,从简单到复杂,可以演变出各种各样的应用。简单的可是只是显示一些数据列表,复杂的,样的应用。简单的可是只是显示一些数据列表,复杂的,可以变成类似可以变成类似Excel那样的电子表格。在这一小节中,先学那样的电子表格。在这一小节中,先学习习Table的基本应用,建立简单的、只能显示数据的表格。的基本应用,建立简单的、只能显示数据的表格。在后面的小节中,再逐步为在后面的小节中,再逐步为Table添加更多复杂的功能。添加更多复杂的功能。8.1.1 8.1.1 一个简单的一个

3、简单的TableTable先看一个简单的例子,了解一下先看一个简单的例子,了解一下Table的基本用法。的基本用法。8.1.2 8.1.2 带有表头和网格线的带有表头和网格线的TableTable通过上面的简单例子,学习了表格的基本应用:首先通过上面的简单例子,学习了表格的基本应用:首先是建立表格,然后是往表格中添加表格的行,每行是一个是建立表格,然后是往表格中添加表格的行,每行是一个TableItem对象。对象。8.1.4 8.1.4 带有检查框的表格带有检查框的表格试着在构造试着在构造Table时加入时加入CHECK这个样式。例子中则这个样式。例子中则是如下面这样修改。运行后则如图是如下面

4、这样修改。运行后则如图8-3那样,在第一列出现那样,在第一列出现了检查框。了检查框。Table table=new Table(shell,SWT.MULTI|SWT.BORDER|SWT.FULL_SELECTION|SWT.CHECK);8.1.5 TableItem8.1.5 TableItem的应用的应用回过头来详细了解一下回过头来详细了解一下TableItem应用。一个应用。一个TableItem就是就是Table中的一行。中的一行。TableItem关键的方法有关键的方法有下面几个:下面几个:void setImage(Image images):void setImage(int

5、 index,Image image):void setText(int index,String string):void setText(String string):void setText(String strings):8.1.6 TableColumn 8.1.6 TableColumn的应用的应用前面的例子已经知道前面的例子已经知道TableColumn是用于定义一个表是用于定义一个表格中的列。格中的列。TableColumn的主要常用方法有:的主要常用方法有:void setAlignment(int alignment):void setImage(Image image):

6、void setMoveable(boolean moveable):void setResizable(boolean resizable):void setText(String string):void setToolTipText(String string):void setWidth(int width):void pack():8.2.1 8.2.1 用虚拟表格提升性能用虚拟表格提升性能虽然很多时候需要在一个表格中容纳大量数据,从用虽然很多时候需要在一个表格中容纳大量数据,从用户使用的角度看,用户不一定每次都要看完所有数据。这户使用的角度看,用户不一定每次都要看完所有数据。这样就

7、不需要把所有数据(样就不需要把所有数据(TableItem)一次添加到表格中。)一次添加到表格中。只有当用户看到(通常是拖拉滚动条)的时候,才真正构只有当用户看到(通常是拖拉滚动条)的时候,才真正构造对应的造对应的TableItem。这样用户第一眼看到的数据是有限的,。这样用户第一眼看到的数据是有限的,表格一瞬间就显示出来了。这种形式有点像表格一瞬间就显示出来了。这种形式有点像Web应用中的应用中的分页。大多数情况下,用户只是操作表格上显示的最前面分页。大多数情况下,用户只是操作表格上显示的最前面一些数据,那些没有操作到的数据,就不需要构造出来,一些数据,那些没有操作到的数据,就不需要构造出来

8、,这样既节省了界面响应的事件,也减少了构造大表格时候这样既节省了界面响应的事件,也减少了构造大表格时候的内存消耗。的内存消耗。8.2.2 8.2.2 运用虚拟表格的步骤运用虚拟表格的步骤第一步:构造第一步:构造Table的时候,加入的时候,加入SWT.VIRTUAL样式样式第二步:预先设置第二步:预先设置Table的数据量的数据量第三步:添加第三步:添加SetData监听器。监听器。8.2.4 8.2.4 使用线程的例子使用线程的例子新建一个类新建一个类TableThread,按照下面的代码输入完整,按照下面的代码输入完整,然后以普通然后以普通Java Application的方式执行。的方式

9、执行。8.3 8.3 表格的事件表格的事件前面的例子只是学习了表格如何显示数据,表格不是前面的例子只是学习了表格如何显示数据,表格不是仅仅用来显示数据的,用户还要通过表格来对数据进行交仅仅用来显示数据的,用户还要通过表格来对数据进行交互操作。要实现表格的交互功能,需要通过各种事件来捕互操作。要实现表格的交互功能,需要通过各种事件来捕获用户的操作动作,其中最关键的事件就是选择事件。下获用户的操作动作,其中最关键的事件就是选择事件。下面就来看一下如何通过监听表格的选择事件来实现交互功面就来看一下如何通过监听表格的选择事件来实现交互功能。能。8.3.1 8.3.1 获得被选择的行或单元格获得被选择的

10、行或单元格有过前面一般有过前面一般SWT部件的编程经验,应该很容易想到,部件的编程经验,应该很容易想到,要获得被选择的行或者单元格,就是通过事件的监听,通过要获得被选择的行或者单元格,就是通过事件的监听,通过监听选择事件来获得选择的行。监听选择事件来获得选择的行。8.3.2 8.3.2 获得表格中检查框的状态获得表格中检查框的状态SWT的的Table中,每一行都是可以带有一个检查框的。中,每一行都是可以带有一个检查框的。捕获勾选框的状态还是通过选择事件,但不能用捕获勾选框的状态还是通过选择事件,但不能用addSelectionListener,而是直接用,而是直接用addListener。8.

11、3.3 8.3.3 删除、或清空表格的行删除、或清空表格的行删除表格中的行也是常用的功能,删除表格中的行也是常用的功能,Table中有几个执中有几个执行删除指定行的方法:行删除指定行的方法:void remove(int index):void remove(int indices):void remove(int start,int end):void removeAll():void clear(int index):void clear(int indices):void clear(int start,int end):void clearAll():8.3.4 8.3.4 删除用户选

12、择的行删除用户选择的行在具体的应用中,用户通常都会选择了表格中某些行在具体的应用中,用户通常都会选择了表格中某些行后,按删除按钮,或者按键盘上的后,按删除按钮,或者按键盘上的“DELETE”键,把所选键,把所选的行删除。的行删除。8.3.5 8.3.5 删除勾选的行删除勾选的行因为因为Web2.0的流行,网络上的一些界面操作习惯也被的流行,网络上的一些界面操作习惯也被搬到了普通搬到了普通GUI程序中。例如网络上通常都通过勾选框来程序中。例如网络上通常都通过勾选框来确认用户的选择操作。确认用户的选择操作。SWT中的中的Table 也可以带有勾选框,也可以带有勾选框,也可以实现勾选框来确认用户操作

13、的功能。也可以实现勾选框来确认用户操作的功能。8.4 8.4 单元格上的编辑功能单元格上的编辑功能在很多界面中,都需要允许用户直接在单元格上编辑在很多界面中,都需要允许用户直接在单元格上编辑数据。正如前面的例子,数据。正如前面的例子,Table本身是不具备这种功能的。本身是不具备这种功能的。为了实现在单元格上显示编辑器,需要借助另外一个帮助为了实现在单元格上显示编辑器,需要借助另外一个帮助类类TableEditor,由,由TableEditor负责在指定的表格上负责在指定的表格上建立单元格的编辑器。建立单元格的编辑器。8.4.2 8.4.2 单元格上的文本编辑器单元格上的文本编辑器下面做一个简

14、单的例子。这个例子首先建立一个简单下面做一个简单的例子。这个例子首先建立一个简单的表格,表格只有的表格,表格只有10行,模拟一个职员表,可以允许用户行,模拟一个职员表,可以允许用户直接在表格上编辑姓名、性别、以及说明。直接在表格上编辑姓名、性别、以及说明。8.4.3 8.4.3 实现多个编辑器实现多个编辑器可以继续参照这个例子,实现其他列也具有编辑的功可以继续参照这个例子,实现其他列也具有编辑的功能。原理是为每一列都对应建立一个能。原理是为每一列都对应建立一个TableEditor。8.4.4 8.4.4 双击才进入编辑状态双击才进入编辑状态前面的例子实现的是在行被选择后即进入编辑状态。前面的

15、例子实现的是在行被选择后即进入编辑状态。有些用户不是很习惯这样的操作习惯,或者某些数据不适有些用户不是很习惯这样的操作习惯,或者某些数据不适合采用这样的操作方式。这种单击选择即编辑的操作虽然合采用这样的操作方式。这种单击选择即编辑的操作虽然很方便,也很容易造成误操作。如果要实现双击才进入编很方便,也很容易造成误操作。如果要实现双击才进入编辑状态,只要修改辑状态,只要修改SelectionAdapter就可以了。就可以了。SelectionAdapter中,中,widgetDefaultSelected(SelectionEvent e)方法就是双击方法就是双击后触发的方法。把原来后触发的方法。把原来widgetSelected(SelectionEvent e)中的代码迁移到中的代码迁移到widgetDefaultSelected(SelectionEvent e)中。然后中。然后widgetSelected(SelectionEvent e)也要重新编写。也要重新编写。widgetSelected(SelectionEvent e)中要取消编辑状态。中要取消编辑状态。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com