У меня есть приложение 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;
}
}
}
}