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

标签 java events canvas swt paint

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

到目前为止,我的 UI 几乎可以正常工作,但启动时的初始图像不会生成绘画事件,因此 Canvas 是空白的。如果我最小限度地调整窗口大小,它会立即正确显示。我正在尝试(可能是错误地)使用 CanvasnotifyListeners() 方法显式生成事件,该方法需要传递 PaintEvent 并且我陷入了如何实例化一个事件的困境。

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

最佳答案

您不必显式触发 PaintEvent。请改用以下选项之一或组合:

  • layout() 标记强制重新定位所有复合子项。 这将在下次重新绘制时变得可见,这将完成 将来某个时候,复合 Material 的屏幕区域将被重新绘制
  • redraw() 将小部件标记为无效。下一个 redraw-system-action 该区域将被重新绘制。
  • update() 强制完成所有未完成的 redraw() 请求 现在。

关于java - 如何在启动时生成SWT绘制事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26486591/

相关文章:

java - 签名作为身份验证请求中的参数

java - 在多台设备上使用登录身份验证 - Android 应用程序

javascript - 使用触控板时捕获滚轮/鼠标滚轮事件的边缘替代解决方案

javascript - html5 <canvas> 在 Opera 11 上速度极慢?

javascript - 在 canvas 和 jquery 中设置图像大小百分比

javascript - 谷歌地图标记为div而不是canvas

java - 在 iText 中访问 OpenType 字形变体

java - 如何在 Java 8 中的重复键映射中添加值

javascript - 如何发现 Ext.FormPanel 是否发生更改

jquery 更改在动态值更改时不起作用