Eclipse 如何防止带有ControlEditor的TableCursor在更改选择时重新绘制上一个单元格?

Eclipse 如何防止带有ControlEditor的TableCursor在更改选择时重新绘制上一个单元格?,eclipse,swt,editor,jface,Eclipse,Swt,Editor,Jface,我正在处理一个有TableCursor和文本编辑器的表。问题是,在我选择一个单元格后,前一个单元格的内容会在新选择的单元格上绘制一小部分时间,我想防止这种情况发生 以下示例代码显示了相同的问题: 如果有人想运行代码,请在TableCursor变量声明之前插入这3行,并在选择其他单元格时观察问题 for (int i = 0; i < NUM; i++) { for (int j = 0; j < NUM; j++) { table.getItem(i).se

我正在处理一个有TableCursor和文本编辑器的表。问题是,在我选择一个单元格后,前一个单元格的内容会在新选择的单元格上绘制一小部分时间,我想防止这种情况发生

以下示例代码显示了相同的问题:

如果有人想运行代码,请在TableCursor变量声明之前插入这3行,并在选择其他单元格时观察问题

for (int i = 0; i < NUM; i++) {
    for (int j = 0; j < NUM; j++) {
        table.getItem(i).setText(j, Math.random() + "");
    }
}
for(int i=0;i
这似乎起到了作用:

cursor.addListener(SWT.Paint, new Listener()
{
    @Override
    public void handleEvent(Event event)
    {
          cursor.setRedraw(false);
    }

});
cursor.addListener(SWT.Selection, new Listener()
{
    @Override
    public void handleEvent(Event event)
    {
         event.display.asyncExec(new Runnable()
          {
              public void run()
              {
                  cursor.setRedraw(true);
              }
          });
    }           
});