SWT学习:[1]Table的用法及示例
1、创建Table:
Table table = new Table(composite, SWT.MULTI | SWT.FULL_SELECTION | SWT.CHECK);
Table可以使用的样式:
SWT.MULTI——选中多行;
SWT.FULL_SELECTION——选中一行中的全部单元格;
SWT.CHECK——带复选框的Table;
![SWT学习:[1]Table的用法及示例](https://exp-picture.cdn.bcebos.com/dd58d02c5b1b1edee03fd38a981fceecd2d90f7a.jpg)
2、设置表头可见:
table.setHeaderVisible(true);
设置表格线可见:
table.setLinesVisible(true);
![SWT学习:[1]Table的用法及示例](https://exp-picture.cdn.bcebos.com/edd84743040148fe01a12ed88fd149299b88027a.jpg)
3、添加列:
TableColumn tc = new TableColumn(table, SWT.CENTER);
//这个是我自己定义的键值类NameValue nv = new NameValue("Num", "编号"); tc.setData(nv);//设置数据 tc.setText(nv.getValue());//设置列名 tc.setWidth(40);//设置列宽 tc.setResizable(false);//设置列宽不能改变
![SWT学习:[1]Table的用法及示例](https://exp-picture.cdn.bcebos.com/3852f6e5eceeadbc96cc34c3cd18dfdae53b7b7a.jpg)
4、添加行:
TableItem item = null; for (int row = 0; row < objs.length; row++) { item = new TableItem(table, SWT.NONE); item.setText(0, row + 1 + ""); for (int col = 0; col < table.getColumnCount() ; col++) { if (objs[row][col] != null) item.setText(col + 1, objs[row][col].toString()); }
}
此处的objs是二维数组。
![SWT学习:[1]Table的用法及示例](https://exp-picture.cdn.bcebos.com/e57a258602214f57a3b52008732064fb970b737a.jpg)
5、给某行设置前景色或者背景色:
//指定颜色
Display display = new Display();Color red = display.getSystemColor(SWT.COLOR_RED);
//可以在添加行的时候同时设置前景或者背景色。 item.setForeground(red);
![SWT学习:[1]Table的用法及示例](https://exp-picture.cdn.bcebos.com/30601b6104a355e9ba4d9b64d22ae3efe178687a.jpg)
6、为Table添加监听事件:
--------例1---------
选中事件
table.addListener(SWT.Selection, new Listener() { public void handleEvent(Event event) {
//TODO ....
}
}
---------例2--------
鼠标按下事件
table.addListener(SWT.MouseDown, new Listener() { public void handleEvent(Event event) {
//TODO....
}
}
![SWT学习:[1]Table的用法及示例](https://exp-picture.cdn.bcebos.com/332d496699cf02536b8050366b36e29146e85f7a.jpg)
7、改变Table中某个单元格的值:
tableItem.setText(columnIndex, value);
![SWT学习:[1]Table的用法及示例](https://exp-picture.cdn.bcebos.com/3fc72e486143d7d419d277587da75f0f832b507a.jpg)