不确定JProgressBar动画滞后

问题描述 投票:0回答:1

使用以下代码

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似乎使用它。

java swing debian lag jscrollbar
1个回答
0
投票

如果您的操作系统未启用,请尝试添加以下行以启用视频加速:

System.setProperty("sun.java2d.opengl", "true");
© www.soinside.com 2019 - 2024. All rights reserved.