在Mac OS中更新时,闪屏动画闪烁

时间:2019-02-16 11:36:42

标签: java macos splash-screen flicker

我有一个Java应用程序,它使用带有加载动画的启动画面图像。从Java代码中每隔x ms绘制一次启动屏幕。

在Windows上运行该应用程序,可以正常工作而不会闪烁。但是,在OSX上运行时,每次我从Java代码运行splash.update()时,初始屏幕都会闪烁。

闪烁非常细微,但很烦人,所以我真的想修复它。

我尝试以不同的速度呼叫spalsh.update(),但闪烁仍然存在。

有人知道为什么会这样吗?

@Override
public void run(){
     final SplashScreen splash = SplashScreen.getSplashScreen();
     if (splash == null) {
         System.out.println("SplashScreen.getSplashScreen() returned null");
         return;
     }
     Graphics2D g = splash.createGraphics();
     if (g == null) {
         System.out.println("g is null");
         return;
     }
   while(true) {
         //...
         //Here some animation happens. But the flicker is still there when I 
         //comment this out so the problem lies elsewhere
         //...
         splash.update(); //THIS CAUSES THE FLICKER ON macOS

         try {
             Thread.sleep(75);
         }
         catch(InterruptedException e) {
         }
         if (GUI.frame != null){
             if (GUI.frame.isVisible()){
                 splash.close();
                 break;
             }   
         }               
     }
}

0 个答案:

没有答案