CheckboxTableViewer控件详解
来源:互联网 发布:域名过户给企业怎么弄 编辑:程序博客网 时间:2024/05/22 13:47
CheckboxtableView使用 //创建CheckboxTableViewer CheckboxTableViewer checkboxTableViewer = CheckboxTableViewer.newCheckList(shell, SWT.BORDER | SWT.FULL_SELECTION); table = checkboxTableViewer.getTable();//获取表格 table.setLinesVisible(true);//表行 table.setHeaderVisible(true);//表格头部显示 table.setBounds(10, 150, 853, 320); table.addListener(SWT.MeasureItem, new Listener() {//监听如果表格中有数据时 表格高度设置为23 public void handleEvent(Event event) { event.height = 23; } }); checkboxTableViewer.setContentProvider(new TableViewContentProvider()); // 内容器 checkboxTableViewer.setLabelProvider(new BeiTaiTableViewLabelProvider());// 标签器 checkboxTableViewer.setInput(list);//设置表格中的数据 //动态切换表格列的时候可以使用(在使用动态切换表格中的头部或信息时) while(table.getColumnCount()>0)table.getColumns()[0].dispose(); //dispose摧毁表格头部重新创建 //将列封装在一个方法里面 例如: public void xuetangColumn(){ while(table.getColumnCount()>0)table.getColumns()[0].dispose(); //在改变列之前摧毁 tableViewerColumn = new TableViewerColumn( checkboxTableViewer, SWT.NONE); TableColumn tableColumn = tableViewerColumn.getColumn(); tableColumn.setText("血糖值"); tableColumn.setWidth(428); tableViewerColumn_1 = new TableViewerColumn(checkboxTableViewer, SWT.NONE); TableColumn tableColumn_1 = tableViewerColumn_1.getColumn(); tableColumn_1.setWidth(400); tableColumn_1.setText("测量日期"); } //删除表格中的所有数据 checkboxTableViewer.getTable().removeAll(); //全选 allselect.addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { TableItem[] items = table.getItems(); if (items != null && items.length > 0) { for (int i = 0; i < items.length; i++) { items[i].setChecked(true); } } } }); //反选 allnotselect.addMouseListener(new MouseAdapter() { @Override public void mouseUp(MouseEvent e) { TableItem[] items = table.getItems(); if (items != null && items.length > 0) { for (int i = 0; i < items.length; i++) { if(items[i].getChecked()){ items[i].setChecked(false); }else{ items[i].setChecked(true); } } } } }); //获取所有checkbox被选中的列 返回一个Object数组 Object[] objects = checkboxTableViewer.getCheckedElements(); //创建List容器 List<?> list=new ArrayList<?>(); //循环Object数组 for(Object obj:objects){ //判断obj是否属于?对象 if(obj instanceof ?){ //强制转换放入list中 list.add((?)obj); } } CheckBoxTableViewer 中内容器、标签器 //内容器 实现IStructuredContentProvider接口 public class TableViewContentProvider implements IStructuredContentProvider{ @SuppressWarnings("unchecked") @Override public Object[] getElements(Object inputElement) { // TODO Auto-generated method stub if(inputElement instanceof List) return ((List)inputElement).toArray(); else return new Object[0]; } @Override public void dispose() { // TODO Auto-generated method stub } @Override public void inputChanged(Viewer arg0, Object arg1, Object arg2) { // TODO Auto-generated method stub } }//标签器public class BeiTaiTableViewLabelProvider implements ITableLabelProvider { @Override public Image getColumnImage(Object element, int index) { // TODO Auto-generated method stub //第一列要显示图片 if(index==1){ retuern new Image(null,"图片路径"); } //根据字段判断 假如实体是userinfo判断男女使用图片显示 if(element instanceof Userinfo){ switch(index){ case 0: return (Userinfo(element)).uname; case 1: return (Userinfo(element)).sex=="男"?new Image(null,"路径"):new Image(null,"路径"); } } return null; } @Override public String getColumnText(Object element, int columnIndex) { if(element instanceof BeiTaiOxygen){ switch (columnIndex) { case 0: return ((BeiTaiOxygen)element).getOxygen(); case 1: return ((BeiTaiOxygen)element).getHeartRate(); case 2: return ((BeiTaiOxygen)element).getCreatetime(); default: return "--"; } } return ""; } @Override public void addListener(ILabelProviderListener arg0) { // TODO Auto-generated method stub } @Override public void dispose() { // TODO Auto-generated method stub } @Override public boolean isLabelProperty(Object arg0, String arg1) { // TODO Auto-generated method stub return false; } @Override public void removeListener(ILabelProviderListener arg0) { // TODO Auto-generated method stub }}
0 0
- CheckboxTableViewer控件详解
- CheckboxTableViewer刷新table数据,复选框保持选中
- AppBarLayout控件 & CoordinatorLayout 控件 详解
- UI控件详解05-UIStepper控件详解
- UI控件详解08-UIScrollView控件详解
- MSComm控件使用详解
- CComboBox控件详解
- CComboBox控件详解
- TreeView控件详解
- TreeView 控件应用详解
- MSComm控件使用详解
- ccombobox控件详解
- [GridView控件]事件详解
- CComboBox控件详解
- [转]ccombobox控件详解
- WebBrowser控件使用详解
- TreeView 控件应用详解
- Delphi7控件包详解
- Nosql Mongodb之旅(10)—MongoDB Capped Collection
- 漫谈高数,特征向量物理意义
- 黑马程序员_学习笔记第21天——图形化界面
- Codeforces Round #151 (Div. 2)
- gcc,g++编译链接有关的路径
- CheckboxTableViewer控件详解
- java 笔试题
- 输入格式与定义格式不匹配
- 黑马程序员_学习笔记第22天——网络编程TCP/UDP
- Nosql Mongodb之旅(11)—MongoDB GridFS
- Step-by-step guide on File-to-IDoc using SAP PI 7.0
- ubuntu12.04 安装sougou拼音
- JBoss 系列九十五:浅谈如何设计一个好的数据库
- 第一篇--然后我就转战iteye了