Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ProgressMonitor  (Прочитано 10317 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Analyzer
Гость
« : 01-01-2005 15:04 » 

Почему может не обновлятся ProgressMonitor? Вроде все сделал правильно
создал класс, задал пределы изменения, указал время всплывания,
обновляю его через метод setProgress. Запускаю на выполнение: диалог выпрыгивает
через заданный интервал, но почему-то не обновляется, даже содержимое
его не рисуется, а когда все заканчивается он благополучно закрывается и все.  :?
Записан
Serega
Гость
« Ответ #1 : 01-01-2005 16:40 » 

КОД стоит тысячи слов !
Записан
Analyzer
Гость
« Ответ #2 : 02-01-2005 06:21 » 

код:
public class Dialog extends JFrame {
  [skip]
  int Progress = 0;
  ProgressMonitor progress;

  void drawTree() {
    [очень много вычислений]   
    progress.setProgress(this.Progress += 2);
  }

  void DrawButton_actionPerformed( ActionEvent e ) {
    [skip]
    progress = new ProgressMonitor(Dialog.this,
                                      "Please wait",
                                      "", 0, (int)Math.pow(2,LevelsCount+1)-2);
    progress.setMillisToPopup(100);
    progress.setMillisToDecideToPopup(1000);
    drawTree();
  }
}

по нажатию кнопки в диалоге вызывается ф-я DrawButton_actionPerformed
Записан
Serega
Гость
« Ответ #3 : 02-01-2005 09:50 » 

ты блокируешь поток своими вычислениями
глянь туториал
Записан
Analyzer
Гость
« Ответ #4 : 03-01-2005 18:01 » 

сори, забыл еще добавить несколько строк
вот полный текст:
public class Dialog extends JFrame {
  [skip]
  int Progress = 0;
  ProgressMonitor progress;

  void drawTree() {
    [очень много вычислений]   
    progress.setProgress(this.Progress += 2);
    DrawTree();   //добавлено
    DrawTree();   //добавлено
  }

  void DrawButton_actionPerformed( ActionEvent e ) {
    [skip]
    progress = new ProgressMonitor(Dialog.this,
                                      "Please wait",
                                      "", 0, (int)Math.pow(2,LevelsCount+1)-2);
    progress.setMillisToPopup(100);
    progress.setMillisToDecideToPopup(1000);
    drawTree();
  }
}
Записан
Serega
Гость
« Ответ #5 : 03-01-2005 22:46 » 

Суть дела не меняется, надо вычисления в отдельный поток запихать
Записан
Analyzer
Гость
« Ответ #6 : 07-01-2005 18:25 » new

большое спасибо, щас все работает как хотелось
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines