插件开发时,表是用的比较多的控件之一,但SWT提供的表只能提供最简单的表。
本文通过具体的例子,对于表的每一列加自定义控件以及对于表的一些删除,增加行操作进行说明。
表的单元格里加自定义控件在http://blog.csdn.net/jdzms23/article/details/7248444里有说明,
但用cellEditor实现时,有一点不爽的地方就是必须单击此单元格后,控件才会显示出来,不知这种方式能不能把控件一直显示,求高人指点。
这里主要用tableEditor方式。
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
public class TestTableView extends ApplicationWindow {
private Table table;
private String[][] contents = {
{"", "张三", "男", "未婚"},{"", "李四", "女", "已婚"},{"", "王五", "女", "未婚"}};
private Hashtable<TableItem, TableItemControls> tableControls = new
Hashtable<TableItem, TestTableView.TableItemControls>();
/**
* Create the application window.
*/
public T