TableEditor 编辑指定列
来源:互联网 发布:天国王朝 角色 知乎 编辑:程序博客网 时间:2024/06/06 00:42
import org.eclipse.swt.custom.*;import org.eclipse.swt.events.ModifyEvent;import org.eclipse.swt.events.ModifyListener;import org.eclipse.swt.widgets.*;import org.eclipse.swt.SWT;import org.eclipse.swt.layout.*;public class tableTest {private Shell sShell = null;private ViewForm viewForm = null;private ToolBar toolBar = null;private Composite composite = null;private Table table = null;private Menu menu = null;//创建ViewForm面板,放置工具栏和表格private void createViewForm(){viewForm = new ViewForm(sShell,SWT.NONE);viewForm.setTopCenterSeparate(true);createToolBar();viewForm.setTopLeft(toolBar);createComposite();viewForm.setContent(composite);}private void createToolBar() {// TODO Auto-generated method stubtoolBar = new ToolBar(viewForm,SWT.FLAT);final ToolItem add = new ToolItem(toolBar,SWT.PUSH);add.setText("添加");final ToolItem del = new ToolItem(toolBar,SWT.PUSH);del.setText("删除");final ToolItem backUp = new ToolItem(toolBar,SWT.PUSH);backUp.setText("UP");final ToolItem forward = new ToolItem(toolBar,SWT.PUSH);forward.setText("下移");final ToolItem save = new ToolItem(toolBar,SWT.PUSH);save.setText("保存");}private void createComposite() {// TODO Auto-generated method stubGridLayout gridLayout = new GridLayout();gridLayout.numColumns = 1;//gridLayout.marginWidth=100;//gridLayout.marginHeight =60;composite = new Composite(viewForm, SWT.NONE);composite.setLayout(gridLayout);createTable();}//创建表格private void createTable() {// 表格布局GridData gridDate = new GridData();gridDate.horizontalAlignment = SWT.FILL;gridDate.grabExcessHorizontalSpace = true ;gridDate.grabExcessVerticalSpace = true;gridDate.verticalAlignment = SWT.FILL;//创建表格table = new Table(composite,SWT.FULL_SELECTION);table.setHeaderVisible(true);//show the table titletable.setLayoutData(gridDate);//设置表格布局table.setLinesVisible(true);//设置显示表格线//创建表头字符串数组String[] tableHeader = {"配置项","参 数","配置人","时 间"};for(int i=0;i<tableHeader.length;i++){TableColumn tableColumn = new TableColumn(table, SWT.CENTER);tableColumn.setText(tableHeader[i]);tableColumn.setMoveable(true);}//增加三行数据TableItem item = new TableItem(table, SWT.NONE);item.setText(new String[]{"IP","0.0.0.0","Host","MM-YY-RR:AA-BB-CC"});item = new TableItem(table, SWT.None);item.setText(new String[]{"端口","80","Host","MM-YY-RR:AA-BB-CC"});item = new TableItem(table, SWT.None);item.setText(new String[]{"数据库","Mysql","Host","MM-YY-RR:AA-BB-CC"});item = new TableItem(table, SWT.None);item.setText(new String[]{"服务器","SSETDDQ","Host","MM-YY-RR:AA-BB-CC"});TableItem[] items = table.getItems();for(int i=0;i<items.length;i++){final TableEditor editor = new TableEditor(table);final Text text = new Text(table,SWT.None);text.setText(items[i].getText(0));editor.grabHorizontal = true;//关键方法editor.setEditor(text, items[i], 0);text.addModifyListener(new ModifyListener(){@Overridepublic void modifyText(ModifyEvent e) {// TODO Auto-generated method stubeditor.getItem().setText(2,text.getText());}});}//重新布局表格for(int i=0;i<tableHeader.length;i++){table.getColumn(i).pack();}}//创建主窗口private void createSShell(){sShell = new Shell();sShell.setText("Detail Config Dialog Operation");sShell.setLayout(new FillLayout());int x = 600;int y = 300;sShell.setLocation(x, y);createViewForm();createMenu();sShell.pack();}//添加一个 弹出式 上下文菜单private void createMenu() {// TODO Auto-generated method stubmenu = new Menu(sShell,SWT.POP_UP);//table.setMenu(menu);MenuItem del = new MenuItem(menu, SWT.PUSH);String delStr = "删除";del.setText(delStr);del.addListener(SWT.Selection, new Listener(){public void handleEvent(Event e){table.remove(table.getSelectionIndices());}});//MenuItem view = new MenuItem(menu,SWT.PUSH);String viewStr = "查看";view.setText(viewStr);view.addListener(SWT.Selection, new Listener(){public void handleEvent(Event e1){TableItem[] items = table.getSelection();for(int i=0 ;i<items.length;i++)System.out.print(items[i].getText());}});}//主函数public static void main(String args[]){Display display = Display.getDefault();tableTest thisclass = new tableTest();thisclass.createSShell();thisclass.sShell.open();while(!thisclass.sShell.isDisposed()){if(!display.readAndDispatch())display.sleep();}display.dispose();}}完整代码
TableItem[] items = table.getItems(); for(int i=0;i<items.length;i++) { final TableEditor editor = new TableEditor(table); final Text text = new Text(table,SWT.None); text.setText(items[i].getText(0)); editor.grabHorizontal = true; editor.setEditor(text, items[i], 0); text.addModifyListener(new ModifyListener(){ @Override publicvoid modifyText(ModifyEvent e) { editor.getItem().setText(2,text.getText()); } });
当你更改items[i].getText( 0 ));和 editor.setEditor(text, items[i], 0);这个两个语句的“0”这个参数时,会改变可编辑的列。比如两处的 0 都改成 1,你就可以更改第二列了。
- TableEditor 编辑指定列
- TreeList中指定行指定列的编辑状态
- 编辑指定列,并且是值为空的时候才可以进行编辑
- gridview 中使用CommandField编辑,指定某一列不编辑方法
- 列编辑
- 如何设置Devexpress TreeList中指定行指定列的编辑状态
- BOS Table 如何指定表、行、列或单元不可编辑
- easyui-datagrid行编辑每增加一行,某列的单元格自动填充指定内容
- winform datagridview设置列单元格不可编辑可以选定指定内容
- HTML动态生成指定行数和列数的可编辑表格
- sublime 列模式 列编辑
- Datagrid编辑列值
- EDITPLUS中列编辑
- eclipse列编辑
- linux中的列编辑
- vim 列编辑
- Vim 列编辑
- notepad++列编辑操作
- js取服务器时间
- android 混淆器的使用 proguard.flags
- Objective-C 语法之集合对象
- 桥接模式
- inner join,left join,right join,full join 的区别,用例子说明
- TableEditor 编辑指定列
- 指针函数与函数指针数组
- UVaOJ 196 - Spreadsheet
- 连连看算法
- libpcap工具包
- 数组指针与指针数组的区别
- oracle 父子节点 查询
- csdn
- android 4.1 源码 官方下载