下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、完整的SWT示例:可编辑的table在项目开发时用到了table,但是想直接编辑表格中的内容,但是SWTTable是不支持直接编辑功能的,查阅了相关资料后,利用TableEdior实现了可编辑的Table,代码如下:importorg.eclipse.swt.SWT;importorg.eclipse.swt.custom.TableEditor;importorg.eclipse.swt.events.FocusAdapter;importorg.eclipse.swt.events.FocusEvent;importorg.eclipse.swt.events.ModifyEvent;im
2、portorg.eclipse.swt.events.ModifyListener;importorg.eclipse.swt.graphics.Point;importorg.eclipse.swt.graphics.Rectangle;importorg.eclipse.swt.layout.GridData;importorg.eclipse.swt.layout.GridLayout;importorg.eclipse.swt.widgets.Control;importorg.eclipse.swt.widgets.Display;importorg.eclipse.swt.widg
3、ets.Event;importorg.eclipse.swt.widgets.Listener;importorg.eclipse.swt.widgets.Shell;importorg.eclipse.swt.widgets.Table;importorg.eclipse.swt.widgets.TableColumn;importorg.eclipse.swt.widgets.TableItem;importorg.eclipse.swt.widgets.Text;publicclassEditableTableprivateTabletable;privateDisplaydispla
4、y;privatestaticprivatestaticprivatestaticintITEM_COUNT=10;intCOLUMN_COUNT=4;intCOLUMN_WIDTH=150;publicvoidTest()display=newDisplay();Shellshell=newShell(display);shell.setText(SWT示例:可编辑的Table);shell.setLayout(newGridLayout();/Table的初始化table=newTable(shell,SWT.BORDER|SWT.FULL_SELECTION);table.setHead
5、erVisible(true);table.setLinesVisible(true);table.setItemCount(ITEM_COUNT);table.setLayoutData(newGridData(SWT.FILL,SWT.FILL,true,true);TableColumncolumns=newTableColumnCOLUMN_COUNT;for(inti=0;iCOLUMN_COUNT;i+)columnsi=newTableColumn(table,SWT.CENTER);columnsi.setText(Column+newInteger(i+1).toString
6、();columnsi.setWidth(COLUMN_WIDTH);/监听对table的双击事件,执行可编辑操作table.addListener(SWT.MouseDoubleClick,listener);shell.open();while(!shell.isDisposed()if(!display.readAndDispatch()display.sleep();shell.dispose();display.dispose();/为每个Tableltem增加Listener,当有Selection事件时,根据行和列可以定位到每一个Cell,然后就可以处理事件,/为一个Cell添加
7、可编辑的方法是增加一个TableEditorprivateListenerlistener=newListener()privateintEDITABLECOLUMN;OverridepublicvoidhandleEvent(Eventevent)/获取鼠标点击的位置Pointpoint=newPoint(event.x,event.y);/得到鼠标点击的行(item)TableItemitem=table.getItem(point);if(item=null)return;for(inti=0;i4;i+)/得到选中行(item)的每一列的矩形范围,根据鼠标点击位置point来进一步确定
8、是哪一格(cell)Rectanglerect=item.getBounds(i);if(rect.contains(point)EDITABLECOLUMN=i;finalTableEditoreditor=newTableEditor(table);ControloldEditor=editor.getEditor();if(oldEditor!=null)oldEditor.dispose();/添加Text,并使高度符合item的高度finalTexttext=newText(table,SWT.NONE);puteSize(SWT.DEFAULT,table.getItemHeigh
9、t();/调整editor的高度宽度editor.grabHorizontal=true;editor.minimumHeight=text.getSize().y;editor.minimumWidth=text.getSize().x;editor.setEditor(text,item,EDITABLECOLUMN);text.setText(item.getText(EDITABLECOLUMN);text.forceFocus();/开始编辑的事件text.addModifyListener(newModifyListener()OverridepublicvoidmodifyText(ModifyEvente)text.setForeground(display.getSystemColor(SWT.COLOR_RED);editor.getItem().setText(EDITABLECOLUMN,text.getText(););/编辑后内容恢复表格前景色text.addFocusListener(newFocusAdapter()OverridepublicvoidfocusLos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年劳务施工总承包合同
- 信息通信业务经营许可证咨询协议文本
- 天津市2024年离婚协议书样本
- 出租车股权转让合同范本
- 深圳市劳动合同范本
- 工程分包个人合同模板
- 教学研究中心项目合作协议模板
- 房屋装潢施工合同范本
- 2024年商业公司钢筋购销合同
- 代理其他商业银行办理全国银行汇票业务协议-合同范本
- DB32 4120-2021 建筑物移动通信基础设施建设标准
- 国家开放大学人文英语1形考任务(单元自测1-8)参考答案-新
- “四风”问题查摆整改台账
- 首诊负责制查检表
- 实验室审核检查表(参照模板)
- 坚持“两个毫不动摇”课件 2022-2023学年高中政治统编版必修二
- 福建广播电视大学中国现当代文学名著导读(2)-形成性考核二答案
- 青岛版三年级上册数学 两位数乘一位数的口算 教案
- 学校教室室内装修工程施工组织设计方案
- 河道整治护岸施工方案
- 《寻访小动物》ppt课件
评论
0/150
提交评论