首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确保每个paint()调用在监视器上都是可见的

如何确保每个paint()调用在监视器上都是可见的
EN

Stack Overflow用户
提问于 2016-05-31 17:12:37
回答 2查看 42关注 0票数 1

我有一个相当奇怪的问题,或者更多的是关于paint()-method的问题:我正在使用可视化一堆图像的部分来删除一些应用程序。您可以使用键盘和鼠标在该堆栈中导航,以查看每个图像。其中一个要求是,即使您在堆栈中快速导航,您也应该能够实际看到每个图像。为了证明我在paint()方法中添加了一些日志输出,以查看显示的是什么图像,一切似乎都很正常。然后,我用一个(软件)视频采集卡从监视器上捕获了一个快速导航,并有足够的帧率,以便在录制的视频中看到一些图像被跳过(视频总是包含显示器上显示的每个图像的几个帧)。我测试了其他一些视频采集卡,也有相同的结果。在我看来,即使实际上为每个图像调用了paint()-method,监视器输出也会跳过其中的一些图像。我该如何避免这种情况呢?我希望你能理解我的问题,对于这个应用程序来说,这是一个真正的问题。

提前感谢你的任何提示,安迪

EN

回答 2

Stack Overflow用户

发布于 2016-05-31 17:20:52

绘制完成后,您必须在component.Then上调用revalidate,更改将会生效。

票数 1
EN

Stack Overflow用户

发布于 2016-05-31 17:54:00

查看documentation on painting,我们可以在笔记上看到:

代码语言:javascript
复制
NOTE: If multiple calls to repaint() occur on a component before 
the initial repaint request is processed, the multiple requests may 
be collapsed into a single call to update(). The algorithm for
determining when multiple requests should be collapsed is 
implementation-dependent. If multiple requests are collapsed, the 
resulting update rectangle will be equal to the union of the rectangles 
contained in the collapsed requests. 

因此,即使您以正确的顺序调用重绘并绘制所有内容,也可能会发生多个绘制事件折叠为一个事件的情况。

看起来您已经采取了措施,当我正确阅读文档时,您必须在repaint()调用之后显式地update()组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37541508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档