首先是初始化Display , shell ,然后建立table,初始化table:
主要代码贴在下面了:
display = new Display();
font1=new Font(display,"宋体",10,SWT.BOLD);
font2=new Font(display,"宋体",12, SWT.ITALIC);
font3=new Font(display,"宋体",12,SWT.BOLD );
shell = new Shell(display);
shell.setBounds(0, 0, 950, 600);
shell.setText("电信系学生信息管理系统(Designed By Ikeel)");
shell.setImage(new Image(null, "image/book.jpg"));
shell.setBackgroundImage(new Image(null, "image/13.jpg"));
shell.setBackgroundMode(SWT.MOD1);
初始化Table:
table = new Table(group, SWT.V_SCROLL | SWT.H_SCROLL | SWT.SINGLE
| SWT.FULL_SELECTION | SWT.CHECK);
table.setHeaderVisible(true);
table.setLinesVisible(true);
table.setBounds(15,45,695, 290);
table.setItemCount(Itemcount);
table.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
table.setFont(Display.getCurrent().getSystemFont());
TableColumn[] columns=new TableColumn[headers.length];
for (int i = 0; i < headers.length; i++) {
columns[i] = new TableColumn(table, SWT.CENTER);
columns[i].setText(headers[i]);
columns[i].setResizable(Boolean.TRUE);
columns[i].setWidth(Width[i]);
}
Table的初始化基本就这些了,然后是推每个TableItem增加Listener,当有Selection事件时,根据行和列可以定位到每一个Cell,然后就可以处理事件,为一个Cell添加可编辑的方法是增加一个TableEditor:代码如下:
table.addListener(SWT.MouseDoubleClick, new Listener()
{
public void handleEvent(Event event) {
Point point = new Point(event.x, event.y);
final TableItem item = table.getItem(point);
if (item == null)
return;
for (int i = 0; i < columnsize; i++) {
Rectangle rectang = item.getBounds(i);
if (rectang.contains(point)) {
EDITABLECOLUMN = i;
final TableEditor editor = new TableEditor(
table);
Control oldEditor = editor.getEditor();
if (oldEditor != null)
oldEditor.dispose();
//添加Editor
final Text texteditor = new Text(table,
SWT.NONE);
texteditor.computeSize(SWT.DEFAULT, table
.getItemHeight());
editor.grabHorizontal = true;
editor.minimumHeight = texteditor.getSize().y;
editor.minimumWidth = texteditor.getSize().x;
editor.setEditor(texteditor, item,
EDITABLECOLUMN);
texteditor.setFont(new Font(display,"宋体",12, SWT.ITALIC));
texteditor.setText(item
.getText(EDITABLECOLUMN));
texteditor.forceFocus();
texteditor
.addModifyListener(new ModifyListener() {
//开始编辑的事件 public void modifyText(
ModifyEvent event) {
Text text = (Text) editor
.getEditor();
text.setForeground(display.getSystemColor(SWT.COLOR_RED));
editor.getItem().setText(
EDITABLECOLUMN,
text.getText());
}
});
texteditor
.addFocusListener(new org.eclipse.swt.events.FocusAdapter() {
public void focusLost(
org.eclipse.swt.events.FocusEvent e) {
///这里写的是当编辑后失去焦点后做的处理
}
}
这个编辑器贴代码不是很方便啊,就不再贴了,不过添加表格单元格编辑的基本的方法的代码已经在上面了。
分享到:
相关推荐
SWT Table 单元格编辑实例代码
swt table 实现换行
工具类实现了分页,虽然还有些欠缺,如在搜索栏和导出菜单未考虑分页的情况
SWT表格管理类,包括表头排序事件,table宽度自适应事件,隔行颜色事件
基于java语言,应用eclipse SWT类库+Jdbc+SqlServer数据库,实现同一界面展示散点图和数据表格展示,满足跨平台、安全等软件应用需求。
修改类库中的tooltip、单元格的复制与粘贴
swing 合并单元格,选择时,被合并的单元格会被作为一列选中。重写UI的方式。
NULL 博文链接:https://1299020954.iteye.com/blog/2181896
使Excel嵌入到SWT窗口中 使用的Eclipse版本:3.3.1 使用的jdk版本:5.0
下载后你自己创建一个根目录,把cho4文件夹都导入,配置你的数据库,就可以直接运行,有一点要知道,该小示例中的修改和删除功能都是以获取数据下标为ID进行与数据库操作的,可以参考
NULL 博文链接:https://chenyu-hz.iteye.com/blog/1842256
为表列添加排序功能,列适应表格宽度,添加光棒以及各行颜色差效果,背景颜色,隔行换色
SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置
Button,Label,Text,Combo,List,Menu,Composite,Group,TabItem,FillLayout,SWT监听事件的使用等等例子!
利用SWTUtils实现了分页,SWT Table技术,测试通过,是个小工具,完整源码,希望对大家有帮助。
org.eclipse.swt.SWT.class org.eclipse.swt.SWTError.class org.eclipse.swt.SWTException.class org.eclipse.swt.accessibility.ACC.class org.eclipse.swt.accessibility.Accessible.class org.eclipse.swt....
64位windows操作系统使用的SWT库
该工程实现了swt/jface tableviwer 的单元格编辑功能,有Text,combo,fileDialog三种单元格编辑样式
swt 中可以编辑的 table tableedit