SWT强制控件刷新

By | 2018年5月10日

当有自定义控件时,例如通过addPaintListener(PaintEvent)在控件上绘制些图形或文字,当内容变化时需要告诉控件去重新绘制。

redraw()方法

告诉控件,重新绘制,调用者不会等待,异步方法。

update()方法

仅在必要时,会触发redraw()方法。这是个同步方法,调用者会等待控件更新完毕。

注意:

直接调用update()方法,没有任何反应,即使控件要绘制的内容变化了。要先调用parent.layout(),update()才会触发redraw()方法。

总结

redraw()更好用,如果控件大小会变化,就先调用parent.layout()一下。

  1. control.getParent().layout();
  2. redraw();