簡體   English   中英

不確定的JProgressBar動畫滯后

[英]Indeterminate JProgressBar animation lag

使用以下代碼

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

如果未在操作系統中啟用,請嘗試添加以下行以啟用視頻加速:

System.setProperty("sun.java2d.opengl", "true");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM