在TableViewer中选择一行

时间:2015-04-07 11:49:37

标签: java swt jface tableviewer

我的应用程序中有一个TableViewer,它具有以下功能:

  • 它从Web服务获取数据,并且在选择行时,按钮被启用并且您可以进行操作(所有这些操作都调用webservice,因此表保持与数据库同步)。
  • 当我添加新行时,我向Web服务提交“添加”命令,然后刷新表格。现在我有了一个新行,我知道哪一行是新行。

现在我想默认选择新行,我尝试了许多命令,如tableViewer.getTable().select(index);,现在就是:

public void selectAdded(int id) {
    tableViewer.getTable().setSelection(id);
}

此图片显示了问题所在:The two different type of selections

上面的一个显示现在使用此代码。下面的行显示了我单击一行时的外观。问题是,按钮没有启用,我有两个只读文本字段保持空白而不是显示我需要的信息。但是当我点击时,一切正常。

如果selectAdded(int id)像点击一样,我应该怎么做?解决方案应该是多平台(Mac / Windows),但至少在Mac上。

1 个答案:

答案 0 :(得分:1)

请勿使用使用Table的{​​{1}}选择方法。而是使用

TableViewer

'model object'是您要选择的行的模型对象(由您的内容提供商返回)。