如何以客户端监视器的最大刷新率为JPanel设置动画?
我想发生的是paintComponent
仅在上次更新后才调用。我可以通过使用Timer
每隔(1000/60)ms调度repaint()
来做到这一点,但是我只是在猜测刷新率是多少。
实际上,我希望连续调用repaint
。但是,如果我每秒调用repaint
200次并且EDT不忙,则它每秒执行paintComponent
200次,这将浪费处理器时间,并且可能会对应用程序的其他性能产生不利影响。
最佳答案
我不确定以显示器的刷新率重新粉刷是个好主意。但是,如果您要查找刷新率,则可以使用这段代码(从互联网无耻地复制)。
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
for (int i = 0; i < gs.length; i++) {
DisplayMode dm = gs[i].getDisplayMode();
// Get refresh rate in Hz
int refreshRate = dm.getRefreshRate();
if (refreshRate == DisplayMode.REFRESH_RATE_UNKNOWN) {
// Unknown rate
} else {
System.out.println(refreshRate);
}
}
关于java - 在Swing中使动画流畅,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6707168/