2012-05-14 61 views
2

我創建了一個Swing JProgresBar並將不確定性設置爲「true」。進度條可以正常工作,但循環速度非常快,而且查看時間超過3秒會很煩人。我想慢下來,我認爲會有這樣的方法。如果有一種方法我還沒有找到它。任何幫助將不勝感激。Swing Indeterminate JProgressBar移動得太快

sftpProgressBar.setIndeterminate(true); 
sftpDialog.setVisible(true); 
+1

的細節你能告訴我們一些關於你如何做的代碼嗎? – evanwong

+1

這是非常多的。我使用Swing Design Window來構建UI。這是我所做的顯示並將其設置爲不確定。 sftpProgressBar.setIndeterminate(true); sftpDialog.setVisible(true); 我對代碼格式提前表示歉意。不知道如何在這裏的評論中做到這一點。 – Conner

+1

*「code formatting。不知道如何在這裏的評論中做到這一點。」* **不要**在評論中放置代碼。將其重新編輯回問題中。 –

回答

2

您可以控制JProgressBar的動畫速度。請參閱documentation

「ProgressBar.cycleTime」UI默認值讓外觀和感覺實現者(以及其他開發人員)指定每個動畫循環所需的毫秒數。例如,循環時間500意味着不確定模式進度條動畫每秒重複兩次。

+0

不錯的信息來自+1 – mKorbel

+0

我試過使用cycleTime,但它沒有出現作爲我可以使用的方法。也許這是一種不同類型的進度條? – Conner

+0

@Conner據我所知,在Swing中只有一個進度條,那就是JProgressBar。也許這些值正在被選定的外觀和感覺(Nimbus,Metal等)所覆蓋。 –

1

那麼,這是我如何解決這個問題。在「main」中,有一些我生成的代碼被註釋掉了。唯一改變的是進度條。它減慢到一個更慢,更明顯令人愉快的速度。這是我註釋的代碼。

try { 
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
    if ("Nimbus".equals(info.getName())) { 
     javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
     break; 
    } 
} 
1
UIManager.put("ProgressBar.repaintInterval", new Integer(250)); 
UIManager.put("ProgressBar.cycleTime", new Integer(6000)); 

ProgressBar.cycleTime:是使用您可以指定每個動畫週期多少毫秒需要 參數。你可以參考link