Используя следующий код
package scrollbartest;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
public class ScrollBarTest {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JProgressBar b = new JProgressBar();
b.setIndeterminate(true);
b.setPreferredSize(new Dimension(400, 20));
f.add(b);
f.pack();
f.setVisible(true);
});
}
}
анимация выполнения "неопределенная" анимация очень запаздывает.Что я делаю не так?
Дополнительная информация:
- ОС: debian 9.8
- Кажется, что код работает нормально на других ОС (пробовал в Windows)
- Происходит как с oracle JDK 1.8.0_201, так и с OpenJDK 1.8.0_181
- Постоянное перемещение курсора мыши над основным JFrame позволяет плавно воспроизводить анимацию
- Эффект изменяется с выбранным внешним видоми чувствую: GTK + лучше системного по умолчанию, но эффект все еще там
Из-за четвертого пункта я думаю, что это своего рода медленное "время обновления" ... это может быть возможно?
Спасибо за любую помощь!
ОБНОВЛЕНИЕ: Проведя некоторые исследования, я обнаружил, что анимацией неопределенного индикатора выполнения можно управлять, задавая некоторые параметры в текущем интерфейсе.:
ProgressBar.repaintInterval
ProgressBar.cycleTime
К сожалению, некоторые взгляды игнорируют первый параметр, в то время как другие - нет.Например, MetalLookAndFeel, похоже, игнорирует его, что приводит к запаздывающей анимации с временем перекраски около 0,5 секунд, в то время как NimbusLookAndFeel, похоже, использует его.