import java.awt.Toolkit;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.action.StatusLineManager;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ICellModifier;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.window.ApplicationWindow;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TableColumn;
import com.huawei.jface.po.Person;
public class MainWindow extends ApplicationWindow{
private TableViewer tableViewer;
private List
public static final int ID =0;
public static final int NAME = 1;
public static final int GENDER = 2;
public static final int COLOR= 3;
public static final String[] COLUMN_NAME={"ID号","姓名","性别","喜爱颜色"};
public MainWindow() {
super(null);
// TODO Auto-generated constructor stub
initData();
this.addMenuBar();
this.addStatusLine();
}
private void initData() {
personList = new ArrayList
personList.add(new Person(1, "张三", "男", "灰色"));
personList.add(new Person(2, "李四", "女", "红色"));
personList.add(new Person(3, "香香", "女", "白色"));
}
@Override
protected void configureShell(Shell shell) {
// TODO Auto-generated method stub
super.configureShell(shell);
shell.setImage(new Image(shell.getDisplay(), "main_title.jpg"));
shell.setText("TableViewer事例");
int screenW = Toolkit.getDefaultToolkit().getScreenSize().width;
int screenH = Toolkit.getDefaultToolkit().getScreenSize().height;
shell.setSize(500, 300);
int shellW = shell.getBounds().width;
int shellH = shell.getBounds().height;
if(shellW>screenW){
shellW=screenW;
}
if(shellH>screenH){
shellH=screenH;
}
shell.setLocation((screenW-shellW)/2, (screenH-shellH)/2);
}
@Override
protected Control createContents(Composite parent) {
// parent.setLayout(new RowLayout(SWT.VERTICAL));
// Text text = new Text(parent,SWT.BORDER|SWT.MULTI|SWT.V_SCROLL);
// RowData data = new RowData();
// data.width = 450;
// data.height=100;
// text.setLayoutData(data);
//创建TableViewer对象
tableViewer = new TableViewer(parent,SWT.FULL_SELECTION|SWT.CENTER);
//创建表头
for(int i=0;i
tableColumn.setText(COLUMN_NAME[i]);
tableViewer.getTable().getColumn(i).pack();
}
//设置表头和表格线可见
tableViewer.getTable().setHeaderVisible(true);
tableViewer.getTable().setLinesVisible(true);
//将list转换为array
tableViewer.setContentProvider(new TableContentProvider());
//对每列数据进行数据类型转换
tableViewer.setLabelProvider(new TableLableProvider());
tableViewer.setInput(personList);
createContextMenu();
editorTableViewer();
return parent