final ToolItem forward = new ToolItem(toolBar, SWT.PUSH);
forward.setText("下移");
// forward.setImage( ImageFactory.loadImage( toolBar.getDisplay() , ImageFactory.FORWARD_NAV));
final ToolItem save = new ToolItem(toolBar, SWT.PUSH);
save.setText("保存");
// save.setImage( ImageFactory.loadImage( toolBar.getDisplay() , ImageFactory.SAVE_EDIT));
//工具栏按钮事件处理
Listener listener = new Listener(){
public void handleEvent(Event event) {
//如果单击添加按钮,添加一行,在实际的项目实现中通常是接收输入的参数,案后添加
//这里为了简单起见,添加固定的一条记录
if ( event.widget == add )
{
TableItem item = new TableItem(table, SWT.NONE);
item.setText(new String[] {"郑六", "女","568","zhengliu@sina.com"});
}
//如果单击删除按钮
else if ( event.widget == del)
{
//首先获得表格中所有的行
TableItem[] items = table.getItems();
//循环所有行
for ( int i=items.length-1;i>=0;i-- ){
//如果该行没有被选中,继续循环
if ( !items[i].getChecked())
continue;
//否则选中,查找该表格中是否有该行
int index = table.indexOf( items[i]);
//如果没有该行,继续循环
if (index<0)
continue;
//删除绑定的控件
TableItemControls cons = tablecontrols.get(items[index]);
if (cons != null) {
cons.dispose();
tablecontrols.remove(items[index]);
System.out.println("dispose " + index);
}
//如果有该行,删除该行
// items[index].dispose();
table.remove( index );
System.out.println("i="+i+", index="+index);
System.out.println("行数:" + table.getItemCount());
// table.pack();
}
}
else if ( event.widget == back)
{
int selectedRow = table.getSelectionIndex();
if ( selectedRow > 0 )
table.setSelection( selectedRow-1 );//设置选中的行数
}
//如果单击下移按钮
else if ( event.widget == forward)
{
int selectedRow = table.getSelectionIndex();
if ( selectedRow > -1&& selectedRow
}
//如果单击保存按钮
else if ( event.widget == save)
{
TableItem [] items = table.getItems();
//保存到文件或数据库中,数据持久化,这里省略
for ( int i=0;i
}
}
};
//为工具栏的按钮注册事件
add.addListener( SWT.Selection , listener );
del.addListener( SWT.Selection, listener );
back.addListener( SWT.Selection , listener );
forward.addListener( SWT.Selection, listener );
save.addListener( SWT.Selection, listener );
}
//创建放置表格的面板
private void createComposite() {
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 1;
composite = new Composite(viewForm, SWT.NONE);
composite.setLayout(gridLayout);
createTable();
}
//创建表格
private void createTable() {
//表格布局
GridData gridData = new org.eclipse.swt.layout.GridData();
gridData.horizontalAlignment