我正在制作一款射击游戏。当子弹(JLabel)穿过敌人(JPanel)时,将调用paintComponent()方法,直到子弹穿过敌人......为什么呢?我的猜测是,当两个组件通过时,默认情况下会调用 PaintComponent() 方法,这是正确的吗? 🤔(我还没有在我的代码中使用任何碰撞检测。)
当 GUI 的一部分有“脏像素”并且需要重新绘制时,paintComponent 方法调用通常由操作系统或 Swing 绘制引擎发起。您也可以建议通过拨打
repaint()
来调用它。
底线是:您无法直接控制何时或是否会调用它,因此您的程序逻辑不应依赖于它在精确时刻被调用。
话虽如此,您会想要更改/改进您的程序结构: