Swing Indeterminate JProgressBar движется слишком быстро

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

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

person Conner    schedule 14.05.2012    source источник
comment
Можете ли вы показать нам код о том, как вы это делаете?   -  person evanwong    schedule 14.05.2012
comment
Это почти все. Я использовал Swing Design Window для создания пользовательского интерфейса. Вот что я делаю, чтобы отобразить и установить его на неопределенный. sftpProgressBar.setIndeterminate (истина); sftpDialog.setVisible (истина); Заранее извиняюсь за форматирование кода. Не уверен, как это сделать в комментариях здесь.   -  person Conner    schedule 14.05.2012
comment
форматирование кода. Не знаю, как это сделать в комментариях здесь. Не помещайте код в комментарии. Отредактируйте его обратно в вопрос.   -  person Andrew Thompson    schedule 14.05.2012
comment
Спасибо, Эндрю. Я отредактировал вопрос и добавил пример кода.   -  person Conner    schedule 14.05.2012


Ответы (3)


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

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

person Jasper Siepkes    schedule 14.05.2012
comment
Я пытался использовать cycleTime, но это не подходило мне. Может быть, это другой тип индикатора выполнения? - person Conner; 15.05.2012
comment
@Conner Насколько я знаю, в Swing есть только один индикатор выполнения, и это JProgressBar. Возможно, значения переопределяются выбранным внешним видом (Nimbus, Metal и т. д.). - person Jasper Siepkes; 17.05.2012

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

try {
  for (javax.swing.UIManager.LookAndFeelInfo info :  javax.swing.UIManager.getInstalledLookAndFeels()) {
    if ("Nimbus".equals(info.getName())) {
        javax.swing.UIManager.setLookAndFeel(info.getClassName());
        break;
  }
}
person Conner    schedule 15.05.2012

 UIManager.put("ProgressBar.repaintInterval", new Integer(250));
 UIManager.put("ProgressBar.cycleTime", new Integer(6000));

ProgressBar.cycleTime: параметр, с помощью которого можно указать, сколько миллисекунд занимает каждый цикл анимации. Подробности можно найти по ссылке.

person Mahantesh M Ambi    schedule 25.06.2013