如何在Eclipse RCP应用程序中刷新TableViewer

时间:2012-01-13 19:28:16

标签: swt eclipse-rcp jface tableviewer

我在我的eclipse rcp应用程序中使用JFace查看器框架,我创建了一个表查看器,它填充了一些数据。我在tableviewer下面有一个刷新按钮,当我在tableviewer中选择一行并触发刷新按钮选定的行仍以灰色显示 场景如下所示 在选择行之前 Before selecting row
选择一行后 After selecting a row
刷新后 After refresh
以什么方式可以删除灰色背景,如上图所示,并将其作为第一张图像。 我的刷新按钮监听器代码很简单,有

viewer.refresh();

作为一种解决方法,我尝试实现像

这样的方法
viewer.getTable().redraw();
viewer.getTable().setRedraw(true); 

哪个不起作用,是否有刷新它的解决方案或者我应该完全刷新视图 注意:我的执行环境是windows xp

2 个答案:

答案 0 :(得分:4)

该灰线是当前,而不是之前的选择。它是灰色的,因为表格不在焦点上。使用setSelection(StructuredSelection.EMPTY)

答案 1 :(得分:4)

如果使用样式标志SWT.HIDE_SELECTION创建表,则表在失去焦点时不会显示其选择。即它看起来就像是你的第一张照片。