首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >awt中的分离重漆

awt中的分离重漆
EN

Stack Overflow用户
提问于 2011-06-11 20:15:49
回答 2查看 94关注 0票数 0

“AWT和Swing中的绘画”文档声明如下。

“如果在处理初始重绘请求之前,在组件上发生了多次重绘()调用,则可能将多个请求折叠为单个调用来更新()。”

是否有可能在组件中更改此行为,从而使用于重新绘制的多个调用不会折叠为单个调用?

编辑:文档进一步声明,“确定何时应折叠多个请求的算法依赖于实现。”

我的问题是,我在一个移动平台上进行单独的调用来重新绘制,并且我试图在桌面上复制这种行为。

EN

回答 2

Stack Overflow用户

发布于 2011-06-11 20:24:04

我担心画图算法在swing/awt中是非常硬编码的,它们只为不同的目的提供不同的挂钩。您可以在swing中使用方法,这将提供您想要的东西,但遗憾的是,似乎没有类似的awt方法。您可以尝试混合awt/swing,但通常不建议这样做,在某些情况下可能会导致奇怪的行为,就像我听说的那样

PS:如果有人问你为什么要这样做:有些应用程序(主要是游戏)需要同步重绘,以确保它们的视觉外观与内部状态保持一致--例如,afaik JScrollbar也在内部使用它(我还没有看过相关的代码,因此,我很清楚为什么在这种情况下它可能有用)。

票数 0
EN

Stack Overflow用户

发布于 2011-06-11 20:27:30

我猜您有一些长期运行的任务,它正在循环一个不更新GUI的循环,正如您所期望的那样。这可能是因为您阻塞了事件调度线程,所以Swing无法重新绘制自身。

阅读有关在Swing中并发的Swing教程中的部分。将SwingWorker用于长期运行的任务,不要阻塞EDT,然后您可以发布结果和所需的结果,并且它们将按预期绘制。

或者,如果您的问题是动画,然后使用摇摆计时器。本教程还有一个关于计时器的部分。

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

https://stackoverflow.com/questions/6318314

复制
相关文章

相似问题

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