Java 如何知道TableViewer中的单元格是否已更改?
我创建了一个TableViewer(jface) 所有列都是可编辑的(使用EditingSupport) 我想知道单元格何时被更改,然后在另一列中升起一个标志。这意味着您开始在单元格中写入任何数据 我知道我需要为单元格创建密钥更改侦听器事件。(或者有不同的方式) 我怎样才能进入手机?我需要在哪里添加事件 //gridViewer类Java 如何知道TableViewer中的单元格是否已更改?,java,jface,Java,Jface,我创建了一个TableViewer(jface) 所有列都是可编辑的(使用EditingSupport) 我想知道单元格何时被更改,然后在另一列中升起一个标志。这意味着您开始在单元格中写入任何数据 我知道我需要为单元格创建密钥更改侦听器事件。(或者有不同的方式) 我怎样才能进入手机?我需要在哪里添加事件 //gridViewer类 public class MyGridViewer extends TableViewer { public MyGridViewer (Composite pa
public class MyGridViewer extends TableViewer {
public MyGridViewer (Composite parent) {
super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
final Table table = this.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
this.setContentProvider(new MyModelProvider());
}
}
}您的
StringCellEditingSupport
类知道单元格何时更改,请将代码放入该类的setValue
方法中
@Override
protected void inputChanged(Object input, Object oldInput) {
removeColumn();
tableCol = new TableViewerColumn(this, SWT.NONE);
column = tableCol.getColumn();
column.setText(dataColumnHeader.getName());
column.setWidth(100);
column.setResizable(true);
column.setMoveable(true);
tableCol.setLabelProvider(new ColumnLabelProvider() {
@Override
public String getText(Object element) {
DataRow r = (DataRow) element;
DataCell c = r.getDataCellByName(dataColumnHeader.getName());
if (c != null && c.getValue() != null) {
return c.getValue().toString();
}
return null;
}
});
editingSupport = new StringCellEditingSupport(this, dataColumnHeader);
tableCol.setEditingSupport(editingSupport);
super.inputChanged(input, oldInput);