powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему не перерисовывается ProgressMonitor
1 сообщений из 1, страница 1 из 1
Почему не перерисовывается ProgressMonitor
    #32968706
akula84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему в этом коде если вызывать из main, то все нормально работает, а если из другой части программы, то ProgressMonitor не перерисовывается, хотя все работает?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
 import  javax.swing.*;


 public   class  prMonitor  extends  JFrame{
  ProgressMonitor monitor;
   int  maxValue= 0 ;
  Thread thread;  
  Runnable runnable;
  //JPanel panel;
  
  
   public  prMonitor(){
      super ("Процесс");
  }
  
  
  //public void setFrame(JPanel panel){
  //  this.panel=panel;
  //}
  
   public   void  setMaxValue( int  maxValue){
     this .maxValue=maxValue;
    monitor =  new  ProgressMonitor( this ,"Идет выполнение транзакции","Осталось", 0 ,maxValue);             
  }
  
   public   void  doWork(){
    runnable =  new  Runnable(){
       public   void  run(){
          monitor.setProgress( 1 );
          monitor.setNote("Осталось " + (maxValue- 1 ) + " строк");
           if (monitor.isCanceled()){
            monitor.setProgress(maxValue);
            monitor.close();            
          }     
      }
    };
    thread =  new  Thread(runnable);
    thread.start();
    //this.setSize(200,200);
    //this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //this.setVisible(true);
  }
  
   public   void  changeMonitorValue( int  value){
    System.out.println(value);
    monitor.setProgress(value);
    monitor.setNote("Осталось " + (maxValue-value) + " строк");  
     try {
      thread.sleep( 10 );} catch (Exception ex){ex.printStackTrace();} 
     if (value==maxValue- 1 ){
      monitor.close();
    }
  }
  
  
  
   public   void  test( int  i){
    //for(int i=1;i<100;i++){
      changeMonitorValue(i);
       try {
        thread.sleep( 100 );} catch (Exception ex){ex.printStackTrace();}
    //}    
  }
  
  /*public static void main(String[] args){
    prMonitor prM = new prMonitor();    
    prM.setMaxValue(100);
    prM.doWork();
    prM.test();
  }*/

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


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