我有一个 SWT 应用程序,它通过重命名文件来显示和排序图像文件。我知道很邋遢,但按名称排序的文件是后续步骤的输入,我无法更改。
到目前为止,我的 UI 几乎可以正常工作,但启动时的初始图像不会生成绘画事件,因此 Canvas
是空白的。如果我最小限度地调整窗口大小,它会立即正确显示。我正在尝试(可能是错误地)使用 Canvas
的 notifyListeners()
方法显式生成事件,该方法需要传递 PaintEvent
并且我陷入了如何实例化一个事件的困境。
强制生成此初始事件的正确方法是什么?
最佳答案
您不必显式触发 PaintEvent
。请改用以下选项之一或组合:
layout()
标记强制重新定位所有复合子项。 这将在下次重新绘制时变得可见,这将完成 将来某个时候,复合 Material 的屏幕区域将被重新绘制redraw()
将小部件标记为无效。下一个 redraw-system-action 该区域将被重新绘制。update()
强制完成所有未完成的 redraw() 请求 现在。
关于java - 如何在启动时生成SWT绘制事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26486591/