SWT&JFace

protected Control createContents(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new GridLayout(2, false));

TableColumnLayout layout=new TableColumnLayout();
Composite composite = new Composite(container, SWT.NONE);
composite.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true, 1, 1));
composite.setLayout(layout);

tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
CellEditor[] editors = new CellEditor[2];
String [] columnProperties = new String[2];
for(int i=0;i<2;i++){
// TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
// TableColumn tblclmnFirst = tableViewerColumn.getColumn();
TableColumn tblclmnFirst = new TableColumn(table,SWT.NONE);
layout.setColumnData(tblclmnFirst, new ColumnWeightData(2, ColumnWeightData.MINIMUM_WIDTH, true));
tblclmnFirst.setText("A"+i);
tblclmnFirst.setWidth(50);
editors[i] = new TextCellEditor(table);
columnProperties[i] = ""+i;
}
tableViewer.setContentProvider(new MatrixContentProvider());
tableViewer.setLabelProvider(new MatrixLabelProvider());
tableViewer.setInput(matrixA);

tableViewer.setColumnProperties(columnProperties);
tableViewer.setCellEditors(editors);
tableViewer.setCellModifier(new ICellModifier(){

@Override
public boolean canModify(Object element, String property) {
return true;
}

@Override
public Object getValue(Object element, String property) {
double[] d = (double[])element;
System.out.println("ICellModifier:: "+Arrays.toString(d)+",property="+property);
int i = Integer.parseInt(property);
return String.valueOf(d[i]);
}

@Override
public void modify(Object element, String property, Object value) {
TableItem item = (TableItem)element;
double[] d = (double[])item.getData();

int i = Integer.parseInt(property);
try{
d[i]=Double.parseDouble(String.valueOf(value));
}catch(Exception e){
e.printStackTrace();
}
System.out.println("ICellModifier::---modify--- "+Arrays.toString(d)+",property="+property+",value =" +value);
outMatrixA();
tableViewer.refresh();
}
});

addButton = new Button(container, SWT.NULL);
addButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
double [] d=new double[2];
matrixA.add(d);
tableViewer.add(d);
}
});
addButton.setText("添加");

public class MatrixLabelProvider implements ITableLabelProvider {
public String getColumnText(Object data, int index) {
double [] d = (double[])data;
return String.valueOf(d[index]);
}

}

public class MatrixContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object list) {
if(list instanceof List){
return ((List)list).toArray();
}
return null;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值