我正在处理使用AnimationTimer()
类的JavaFX动画。根据所有可能的来源,默认情况下它应该以60 fps工作。但是,在我的笔记本电脑上,它会以更高的速率刷新:300 - 700,具体取决于窗口大小。我在Manjaro Linux GNOME Edition上使用IntelliJ IDEA Community Edition和Oracle JDK8。我已经尝试过其他JDK - 仍然是同样的情况。它的行为就好像JVM选项javafx.animation.fullspeed
设置为true,但事实并非如此。在另一台运行Manjaro GNOME版本的机器上也是如此。
我尝试过(未记录的)JVM选项:
javafx.animation.fullspeed=false | true
javafx.animation.framerate=value
javafx.animation.pulse=value
即使Settings.get(key)
按设置返回值,它们也不会改变任何内容。
在另一台基于Windows 10的计算机上,FPS表现正常:在默认/无VM选项上保持60值,在javafx.animation.fullspeed=true
时全速运行,在Windows上运行,如在Manjaro / VirtualBox上。
答案 0 :(得分:3)
样本解决方案归功于@James_D发布的评论和以下内容:
<div>
<button class="menu-button">
<span>Clickme</span>
</button>
<div class="popover-menu">
Menu
</div>
</div>
请阅读this question的评论以了解详情。
此外:这可能是双重图形相关的问题。强制使用像import javafx.application.Application;
public class Start {
public static void main(String[] args) {
//must be set before launching the Main class
System.setProperty("quantum.multithreaded", "false");
Application.launch(Main.class, args);
}
}
这样的辅助图形也可以解决它。但是,在生产版本中,我认为最好将# optirun ./idea.sh
设置为false。