我有一个程序可以在预定义的窗口周围弹跳任意数量的球。它依赖于Swing Timer根据用户设置的延迟更新球。我的问题是这样的:在适度的情况下,球的滞后程度远远超过他们应该的。奇怪的是,如果正在执行另一个动作(例如鼠标点击或鼠标在屏幕周围移动),球会平滑移动。有谁知道会导致什么?
答案 0 :(得分:0)
奇怪的是,如果正在执行另一个动作(例如鼠标点击或鼠标在屏幕上移动),球会平滑移动。
根据该声明,我猜你的问题是在repaint()
或显示球的其他JPanel
子类上没有正确调用java.awt.Component
。只要你的代码改变了球的位置,你就需要调用Component.repaint()
。
答案 1 :(得分:0)
不确定这是否有帮助:您考虑过双缓冲吗? (这是在'非图像'中进行所有昂贵的绘画操作,并在完成后将该图像复制到可见区域)。