2012-02-11 4 views
0

나는 자바 초보자입니다. 그래서 내가 동시에 진행률 표시 줄과 내 응용 프로그램 코드를 동시에 실행할 수있는 방법을 알려 주시기 바랍니다. 즉, 내 진행률 표시 줄을 증가시키고 싶습니다. 만큼 내 응용 프로그램 코드는 일부 processing.Please 정교한 코드와 함께하고있다. 내가 생각하기에 두 스레드를 동시에 추가해야한다는 것입니다. 하나의 스레드가 progressbar 스레드를 업데이트하지만 그 방법이 올바른지 아닌지 확실하지 않습니다. 내가 (하드 코딩) 진행 막대를 증가하기위한 코드를 작성했습니다 자바 진행률 표시 줄이 동시에 작동하도록 응용 프로그램 코드

 class ProgressMonitor implements Runnable { 

    public void run() { 
     jProgressBar1.setStringPainted(true); 
     //run untill 100% complete 
     while (progress < 100) { 
      //update the progressbar 
      jProgressBar1.setValue(++progress); 
      jProgressBar1.repaint(); 
      try { 

       //Sleep for .25 second 
       Thread.sleep(250); 
      } catch (InterruptedException ex) { 
      } 
     } 

    } 

답변

3

문제는 기본적으로 그 장기 실행 작업을 차단 GUI를 업데이트 이벤트 발송 쓰레드. 한 가지 해결책은 SwingWorker에서 작업하는 것입니다.

배경 스레드에서 긴 GUI 상호 작용 작업을 수행하기위한 추상 클래스입니다. ..

자세한 내용은 Concurrency in Swing 튜토리얼의 강의를 참조하십시오.

1

솔루션은 SwingWorker를 사용하는 참이다. JProgressBar과 함께 사용하려면 JProgressBar tutorial을 사용하는 것이 좋습니다. 여기에는 SwingWorkerJProgressBar을 조합하여 사용하는 예가 있습니다. 또는이 사이트에서 빠른 검색을 수행하고 this one

과 같은 예를 찾으십시오.
관련 문제