【发布时间】:2012-03-25 06:29:09
【问题描述】:
我有一个程序可以在预定义的窗口周围反弹任意数量的球。它依靠摇摆计时器根据用户设置的延迟更新球。我的问题是:在适度的情况下,球的滞后程度远远超过应有的水平。奇怪的是,如果正在执行另一个动作(例如鼠标单击或鼠标在屏幕上移动),球会平稳移动。有谁知道这是什么原因造成的?
【问题讨论】:
我有一个程序可以在预定义的窗口周围反弹任意数量的球。它依靠摇摆计时器根据用户设置的延迟更新球。我的问题是:在适度的情况下,球的滞后程度远远超过应有的水平。奇怪的是,如果正在执行另一个动作(例如鼠标单击或鼠标在屏幕上移动),球会平稳移动。有谁知道这是什么原因造成的?
【问题讨论】:
奇怪的是,如果正在执行其他操作(例如鼠标单击或鼠标在屏幕上移动),球会平稳移动。
根据该声明,我猜您的问题是没有正确调用 repaint() 上的 JPanel 或其他显示球的 java.awt.Component 子类。每当您的代码更改球的位置时,您都需要调用Component.repaint()。
【讨论】:
不确定这是否有帮助:您是否考虑过双缓冲? (即在“图像外”中执行所有昂贵的绘制操作,并在完成后将该图像复制到可见区域)。
【讨论】: