如何在启动时生成SWT绘制事件

时间:2014-10-21 12:20:31

标签: java events canvas swt paint

我有一个SWT应用程序,它通过重命名文件来显示和排序图像文件。我知道Scruffy,但按名称排序的文件是我无法改变的后续步骤的输入。

到目前为止,我的UI几乎正常工作,但启动时的初始图像不会生成绘制事件,因此Canvas为空。如果我最小化窗口大小,它会立即正确显示。我正在尝试(可能不正确)使用notifyListeners() Canvas方法显式生成事件,该方法需要传递PaintEvent并且我坚持如何实例化一个。

强制生成此初始事件的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您不必明确触发PaintEvent。而是使用以下选项中的一个或组合:

  • layout()标记强制重新定位所有复合子项。 这将在下次重绘时显示,这将完成 未来的某个地方,当重新组合复合的屏幕区域时
  • redraw()标记小部件无效。接下来 redraw-system-action这个区域将重新粉刷。
  • update()强制完成所有未完成的redraw()请求 NOW。