很简单 主类 为 Tableview 辅助 有 TableViewerContentProvider 提供内容,TableViewerLabelProvider 显示内容 实体 Transmission
1.Tableview
public class TableView extends ViewPart {
public TableView() {
}
@Override
public void createPartControl(Composite parent) {
TableViewer tv = new TableViewer(parent, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
// 第二步:通过表格内含的Table对象设置布局方式
Table table = tv.getTable();
table.setHeaderVisible(true); // 显示表头
table.setLinesVisible(true); // 显示表格线
TableLayout layout = new TableLayout(); // 专用于表格的布局
table.setLayout(layout);
// 第三步:用TableColumn类创建表格列
layout.addColumnData(new ColumnWeightData(13));// ID列宽13像素
new TableColumn(table, SWT.NONE).setText("本地路径");
layout.addColumnData(new ColumnWeightData(20));
new TableColumn(table, SWT.NONE).setText("方向");
layout.addColumnData(new ColumnWeightData(20));
new TableColumn(table, SWT.NONE).setText("服务器路径");
layout.addColumnData(new ColumnWeightData(20));
new TableColumn(table, SWT.NONE).setText("大小");
layout.addColumnData(new ColumnWeightData(20));
new TableColumn(table, SWT.NONE).setText("优先级");
layout.addColumnData(new ColumnWeightData(20));
new TableColumn(table, SWT.NONE).setText("时间");
layout.addColumnData(new ColumnWeightData(40));
new TableColumn(table, SWT.NONE).setText("原因");
// 第四步:设置内容器和标签器
tv.setContentProvider(new TableViewerContentProvider());
tv.setLabelProvider(new TableViewerLabelProvider());
// 第五步:用TableViewer的setInput方法将数据输入到表格
List transmission = new ArrayList();
transmission.add(new Transmission("/home", "<--", "/opt", "23","normal","2012-6-29","reason"));
transmission.add(new Transmission("/home", "<--", "/opt", "23","normal","2012-6-29","reason"));
// Object data = PeopleFactory.getPeoples();
tv.setInput(transmission);
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
}
2.TableViewerContentProvider
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;
public class TableViewerContentProvider implements IStructuredContentProvider {
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
// TODO Auto-generated method stub
}
public Object[] getElements(Object inputElement) {
// TODO Auto-generated method stub
return ((List) inputElement).toArray();
}
}
3.TableViewerLabelProvider
package com.upload.test;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.swt.graphics.Image;
import com.upload.tableview.PersonEO;
public class TableViewerLabelProvider implements ITableLabelProvider {
@Override
public void addListener(ILabelProviderListener arg0) {
// TODO Auto-generated method stub
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public boolean isLabelProperty(Object arg0, String arg1) {
// TODO Auto-generated method stub
return false;
}
@Override
public void removeListener(ILabelProviderListener arg0) {
// TODO Auto-generated method stub
}
@Override
public Image getColumnImage(Object arg0, int arg1) {
// TODO Auto-generated method stub
return null;
}
@Override
public String getColumnText(Object element, int columnIndex) {
Transmission transmission = (Transmission) element;
if (columnIndex == 0)
return transmission.getServerORlocal() + "";
if (columnIndex == 1)
return transmission.getDirection();
if (columnIndex == 2)
return transmission.getRemotefile();
if (columnIndex == 3)
return transmission.getSize();
if (columnIndex == 4)
return transmission.getPriority();
if (columnIndex == 5)
return transmission.getTime();
if (columnIndex == 6)
return transmission.getReason();
return null;
}
}
4.Transmission
package com.upload.test;
public class Transmission {
// new TableColumn(table, SWT.NONE).setText("ID号");
// layout.addColumnData(new ColumnWeightData(40));
// new TableColumn(table, SWT.NONE).setText("姓名");
// layout.addColumnData(new ColumnWeightData(20));
// new TableColumn(table, SWT.NONE).setText("性别");
// layout.addColumnData(new ColumnWeightData(20));
// new TableColumn(table, SWT.NONE).setText("年龄");
// layout.addColumnData(new ColumnWeightData(60));
// new TableColumn(table, SWT.NONE).setText("记录建立时间");
private String serverORlocal;
private String direction;
private String remotefile;
private String size;
private String priority;
private String time;
private String reason;
public Transmission(String serverORlocal,String direction,String remotefile,String size,String priority,String time,String reason){
this.serverORlocal = serverORlocal;
this.direction = direction;
this.remotefile = remotefile;
this.size = size;
this.priority = priority;
this.time = time;
this.reason = reason;
}
public Transmission(String serverORlocal,String direction,String remotefile,String size,String priority,String time){
this.serverORlocal = serverORlocal;
this.direction = direction;
this.remotefile = remotefile;
this.size = size;
this.priority = priority;
this.time = time;
}
public String getServerORlocal() {
return serverORlocal;
}
public void setServerORlocal(String serverORlocal) {
this.serverORlocal = serverORlocal;
}
public String getDirection() {
return direction;
}
public void setDirection(String direction) {
this.direction = direction;
}
public String getRemotefile() {
return remotefile;
}
public void setRemotefile(String remotefile) {
this.remotefile = remotefile;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getPriority() {
return priority;
}
public void setPriority(String priority) {
this.priority = priority;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getReason() {
return reason;
}
public void setReason(String reason) {
this.reason = reason;
}
}