gpt4 book ai didi

java - 如何知道 TableViewer 中的单元格是否已更改?

转载 作者:行者123 更新时间:2023-11-30 11:23:14 25 4
gpt4 key购买 nike

我创建了一个 TableViewer ( jface )。

所有列都是可编辑的(使用 EditingSupport)

我想知道何时更改单元格,然后在其他列中升起一个标志。意味着你开始在单元格中写入任何数据

我知道我需要为单元格创建键更改监听器事件。 (或者有不同的方式)

我怎样才能访问单元格?我需要在哪里添加事件

//gridViewer类

 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());

}

 @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);

最佳答案

您的 StringCellEditingSupport 类知道单元格何时更改,将您的代码放在该类的 setValue 方法中。

关于java - 如何知道 TableViewer 中的单元格是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com