Вспышка анимации мерцает при обновлении в Mac OS - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть приложение Java, которое использует изображение заставки с анимацией загрузки.Заставка отображается каждые x мс из кода Java.

Запуск приложения в Windows работает без сбоев и мерцаний.Однако при работе в OSX заставка мигает каждый раз, когда я запускаю splash.update() из кода Java.

Мерцание очень тонкое, но раздражающее, поэтому я действительно хочу это исправить.

Я пытался дозвониться до 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;
             }   
         }               
     }
}
...