如何制作一个通用的FPS计数器?

How to make a general FPS counter?

我搜索了这个问题,我得到了你在游戏循环中放置的正常 FPS 计数器。
但我想做的是一个通用的 FPS 计数器,它与任何游戏一起运行并显示其 FPS。

我的想法是制作一个透明的 JFrame 和大 JLabel 并将它们添加到屏幕的任何角落。然后覆盖 paint 方法,无论何时调用它都意味着绘制了一个新帧并计算帧重新绘制的频率并将其显示在 JLabel.

中,但它不会似乎无法正常工作,因为调用了 paint 方法或两次,然后不再调用它。

paint 方法只在需要时被调用。因此,如果 JFrame 上没有任何更新,则不会调用它。这就是为什么它在执行两次左右后停止的原因。 因此,如果您只想知道 JFrame 被绘制了多少次并且您可以访问代码库本身,那么您的方法是正确的。但是由于您想在不触及帧本身代码的情况下限制另一帧的 fps,因此不可能为这种情况添加 fps 计数器。但是您可以使用 JNI 来实现这一点。