gpt4 book ai didi

java - Swing 中的平滑动画

转载 作者:行者123 更新时间:2023-11-29 06:11:24 25 4
gpt4 key购买 nike

如何以客户端显示器的最大刷新率为 JPanel 设置动画?

我希望发生的是 paintComponent 仅在上次更新后调用。我可以通过使用 Timer 每隔 (1000/60) 毫秒安排一次 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com