2012-05-14 1 views
2

Я создал Swing JProgresBar и установил неопределенное значение «true». Индикатор выполнения работает правильно, но он работает очень быстро, и это раздражает, чтобы смотреть дольше 3 секунд. Я хочу замедлить его, и я подумал, что для этого будет метод. Если есть метод, я еще не нашел его. Любая помощь будет принята с благодарностью.Swing Неопределенный JProgressBar слишком быстро перемещается

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

Можете ли вы показать нам какой-то код о том, как вы это делаете? – evanwong

+1

Это в значительной степени. Я использовал окно дизайна Swing для создания пользовательского интерфейса. Вот что я делаю, чтобы отобразить и установить его неопределенным. sftpProgressBar.setIndeterminate (true); sftpDialog.setVisible (true); Заранее прошу прощения за форматирование кода. Не уверен, как это сделать в комментариях здесь. – Conner

+1

* "форматирование кода. Не знаете, как это сделать в комментариях здесь." * ** Не помещайте код в комментарии. Отредактируйте его обратно в вопрос. –

ответ

2

Вы можете управлять скоростью анимации JProgressBar. Смотрите documentation:

«ProgressBar.cycleTime» UI по умолчанию позволяет выглядеть и чувствовать себя внедренцев (а также другие разработчики) указать, сколько миллисекунд каждый анимационный цикл занимает. Например, время цикла 500 означает, что мультипликация индикатора хода неопределенного режима повторяется дважды в секунду.

+0

nice infos from +1 – mKorbel

+0

Я пробовал использовать cycleTime, но это не было похоже на метод, который я мог бы использовать. Может быть, это другой тип индикатора прогресса? – Conner

+0

@Conner Насколько я знаю, в Swing есть только один прогресс, и это JProgressBar. Возможно, значения переопределяются выбранным Look and Feel (Nimbus, Metal и т. Д.). –

1

Ну, вот как я исправил проблему. В «главном» был некоторый сгенерированный код, который я прокомментировал. Единственное, что изменилось, это индикатор прогресса. Это замедлилось до гораздо более медленной и более заметной скорости. Это код, который я прокомментировал.

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