


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CNFMA B017-2021园林绿化机械以锂离子电池为动力源的耐高电压杆式修枝锯
- T/CNESA 1001-2019电力储能用直流动力连接器通用技术要求
- T/CMRA 05-2019竖肋铝合金组合模板施工技术标准
- T/CMA HG028-2021轮胎冰地抓着性能测试道路制作及验收和使用维护
- T/CITS 0006-2022标准“领跑者”评价要求音视频设备检验检测服务
- T/CIMA 0042-2023水体浮游动物在线监测仪
- T/CIIA 030-2022微生物数据库安全体系设计要求
- T/CIE 121-2021逆导型IGBT的热阻测试方法
- T/CECS 10114-2021增强高密度聚乙烯(HDPE-IW)六棱结构壁管材
- T/CECS 10066-2019绿色建材评价地源热泵系统
- 2025年新北师大版数学七年级下册课件 第五章 5.1 轴对称及其性质
- 地球的自转+训练题 高二地理湘教版(2019)选择性必修1
- 2025年基本公共卫生服务人员培训计划
- 《香格里拉松茸保护与利用白皮书》
- 2025届上海市中考联考生物试卷含解析
- 信息化平台项目集成联调测试方案
- 2020-2024年高考语文真题语病题汇编及解析
- 医院危险品安全管理培训
- 早产儿体位管理的个案护理
- 《工业废水深度处理零排放技术规范》编制说明
- 国开电大《财务报表分析》形考任务1-4
评论
0/150
提交评论