【问题标题】:Lagging graphics in Java swingJava swing 中的图形滞后
【发布时间】:2012-03-25 06:29:09
【问题描述】:

我有一个程序可以在预定义的窗口周围反弹任意数量的球。它依靠摇摆计时器根据用户设置的延迟更新球。我的问题是:在适度的情况下,球的滞后程度远远超过应有的水平。奇怪的是,如果正在执行另一个动作(例如鼠标单击或鼠标在屏幕上移动),球会平稳移动。有谁知道这是什么原因造成的?

【问题讨论】:

  • “有谁知道这是什么原因造成的?” 代码。为了尽快获得更好的帮助,请发帖SSCCE
  • 你的代码阻塞了事件调度线程;系统生成的repaint() 事件不是。请参阅工作示例here

标签: java swing timer


【解决方案1】:

奇怪的是,如果正在执行其他操作(例如鼠标单击或鼠标在屏幕上移动),球会平稳移动。

根据该声明,我猜您的问题是没有正确调用 repaint() 上的 JPanel 或其他显示球的 java.awt.Component 子类。每当您的代码更改球的位置时,您都需要调用Component.repaint()

【讨论】:

  • 猜测最好留给 cmets。
【解决方案2】:

不确定这是否有帮助:您是否考虑过双缓冲? (即在“图像外”中执行所有昂贵的绘制操作,并在完成后将该图像复制到可见区域)。

【讨论】:

  • 猜测最好留给 cmets。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 1970-01-01
相关资源
最近更新 更多