2012-05-14 3 views
2

J'ai créé un objet Swug JProgresBar et défini indéfini sur "true". La barre de progression fonctionne correctement mais elle fonctionne extrêmement vite et il est ennuyeux de regarder pendant plus de 3 secondes. Je veux ralentir et je pensais qu'il y aurait une méthode pour cela. S'il y a une méthode, je ne l'ai pas encore trouvée. Toute aide serait grandement appréciée.Swing indéterminé JProgressBar se déplaçant trop vite

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

Pouvez-vous nous montrer un code sur la façon dont vous faites cela? – evanwong

+1

C'est à peu près tout. J'ai utilisé la fenêtre de conception Swing pour construire l'interface utilisateur. Voici ce que je fais pour l'afficher et le définir sur indéterminé. sftpProgressBar.setIndeterminate (true); sftpDialog.setVisible (true); Je m'excuse d'avance pour le formatage du code. Je ne sais pas comment faire cela dans les commentaires ici. – Conner

+1

* "mise en forme de code. Je ne sais pas comment faire cela dans les commentaires ici." * ** Ne pas ** mettre du code dans les commentaires. Modifiez-le dans la question. –

Répondre

2

Vous pouvez contrôler la vitesse d'animation d'un JProgressBar. Voir la documentation:

Le « ProgressBar.cycleTime » par défaut de l'interface utilisateur permet de regarder et se sentir implémenteurs (ainsi que d'autres développeurs) spécifier le nombre de millisecondes à chaque cycle d'animation prend. Par exemple, un temps de cycle de 500 signifie que l'animation de barre de progression en mode indéterminé se répète deux fois par seconde.

+0

bonnes infos de +1 – mKorbel

+0

J'ai essayé d'utiliser cycleTime mais ça n'a pas été une méthode que j'ai pu utiliser. Peut-être que c'est un type différent de barre de progression? – Conner

+0

@Conner Pour autant que je sache, il n'y a qu'une barre de progression dans Swing et c'est le JProgressBar. Peut-être que les valeurs sont remplacées par le Look and Feel sélectionné (Nimbus, Metal, etc.). –

1

Eh bien, voici comment j'ai résolu le problème. Dans "main" il y avait du code généré que j'ai commenté. La seule chose qui a changé était la barre de progression. Il a ralenti à une vitesse beaucoup plus lente et plus visiblement agréable. C'est le code que j'ai commenté.

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: est le paramètre à l'aide que vous pouvez spécifier le nombre de millisecondes à chaque cycle d'animation prend . Vous pouvez consulter les détails dans link