powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / SWING - непонятки с ProgressMonitor
8 сообщений из 8, страница 1 из 1
SWING - непонятки с ProgressMonitor
    #34458257
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Не могу понять, как работать с ProgressMonitor.
Пишу такой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    monitor =  new  ProgressMonitor( CRoot.getMainForm(), 
        "Выполнение синхронизации",  null ,  0 ,  200  );
    CSynchronizer sync =  new  CSynchronizer(); // это Runnable
    Thread syncThread =  new  Thread( sync );
    syncThread.start();
     while ( ! sync.isDone()){
       try {
        Thread.sleep(  500  );
        monitor.setProgress( sync.getState());
      } catch ( InterruptedException e ){
         break ;
      }
    }
    monitor.close();

Соответственно CSynchronizer сообщает об окончании работы через isDone() и о шагах работы через getState(). Но вот беда- окошко остаётся пустым, даже без текста.
Что здесь не так? Хорстмана читал, то ли не понял, то ли еще чего...

--
Алексей.
...
Рейтинг: 0 / 0
SWING - непонятки с ProgressMonitor
    #34458290
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SWING - непонятки с ProgressMonitor
    #34458635
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexaka пишет:

> может EventQueue::invokeLater(Runnable runnable)

В каком месте его использовать? Для создания окна или что?

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
SWING - непонятки с ProgressMonitor
    #34458659
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SWING - непонятки с ProgressMonitor
    #34458745
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm пишет:

> http://java.sun.com/docs/books/tutorial/uiswing/components/examples/ProgressMonitorDemo.java

Это несколько не то- мне не надо в фоне работать.
Во время этой операции работать нельзя.
Надо просто, чтобы пользователь не паниковал, а видел процесс работы.

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
SWING - непонятки с ProgressMonitor
    #34458820
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Показывай модальный диалог.
...
Рейтинг: 0 / 0
SWING - непонятки с ProgressMonitor
    #34458842
Guest1234567890
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey TominДобрый день!

Не могу понять, как работать с ProgressMonitor.
Пишу такой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
     while ( ! sync.isDone()){
       try {
        Thread.sleep(  500  );
        monitor.setProgress( sync.getState());
      } catch ( InterruptedException e ){
         break ;
      }
    }


Но вот беда- окошко остаётся пустым, даже без текста.
Что здесь не так? Хорстмана читал, то ли не понял, то ли еще чего...


А кто по вашему будет перерисовывать это окно, если вы блокируете этим кодом поток Swing'а? Заблокируйте вручную все, что нельзя использовать на время выполнения потока, а по завершении его разблокируйте. Окно с прогрессом подпишите на событие CSynchronizer'а об изменении состояния. В функции, принимающей вызовы этого события прогресс бар надо обновлять через invokeLater. Будет намного более понятный и быстрый код.
...
Рейтинг: 0 / 0
SWING - непонятки с ProgressMonitor
    #34459185
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1234567890 пишет:

> А кто по вашему будет перерисовывать это окно, если вы блокируете этим
> кодом поток Swing'а?

Понял.
Убрал всё, что за
syncThread.start();
а в потоке делаю так

EventQueue.invokeLater( informer );

где вызываю

monitor.setProgress( ++state );

Теперь окошко хорошо рисуется, но прогресса нет.
М.б. надо кроме setProgress ещё что-то звать? Или зарание что-то делать?

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / SWING - непонятки с ProgressMonitor
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]