Performance 在Swing中,当许多组件不断请求重新绘制时,如何为用户交互提供优先级?

Performance 在Swing中,当许多组件不断请求重新绘制时,如何为用户交互提供优先级?,performance,swing,events,Performance,Swing,Events,摇摆新手问题 我有一个系统,在这个系统中,窗口中有大量独立的小部件(想想>100),它们获取异步更新,然后请求重新绘制。当这些小部件得到非常快的更新时,它们似乎会使Swing事件线程过载,因此用户交互(例如,右键单击以显示上下文菜单)需要很长时间 我相信这是有规律的 我能想到的几个解决方案是: 1) 事件优先级(怀疑是否支持) 2) 编写一个自定义重绘管理器来减缓我的小部件中的项目。 3) 让组件从另一个类请求一个repain,该类将以某种方式计算脏区域和联系人Swing 谢谢 在Swing中,

摇摆新手问题

我有一个系统,在这个系统中,窗口中有大量独立的小部件(想想>100),它们获取异步更新,然后请求重新绘制。当这些小部件得到非常快的更新时,它们似乎会使Swing事件线程过载,因此用户交互(例如,右键单击以显示上下文菜单)需要很长时间

我相信这是有规律的

我能想到的几个解决方案是: 1) 事件优先级(怀疑是否支持) 2) 编写一个自定义重绘管理器来减缓我的小部件中的项目。 3) 让组件从另一个类请求一个repain,该类将以某种方式计算脏区域和联系人Swing


谢谢

在Swing中,如果可能,将多个重绘请求合并为一个。出于这个原因,我不认为多重重绘事件会使你的应用程序过载。是否有可能在EDT上执行其他操作,而不仅仅是UI操作

另外,你是对的,可以通过计算脏区来优化喷漆。但这通常是由组件的UI部分完成的,因为只有它知道如何正确完成此类计算