2016-06-14 3 views
0

여기에 Button의 작업 수신기가 있고 진행률 표시 줄을 반복하는 메서드가 있는데 어떻게 진행률 막대에 메서드를 구현할 수 있습니까?진행률 표시 줄에 메서드 구현

나는 pb.setString (iterator)을 시도했다. 하지만 SetString은 문자열 만 받아들이 기 때문에 분명히 작동하지 않았습니다.

public void actionPerformed(ActionEvent arg0) 
       { 
        pb = new JProgressBar(0,100); 
        pb.setBounds(80, 80, 160, 30); 
        pb.setValue(0); 
        pb.add(iterator()); 
        pb.setStringPainted(true); 
        pb.setVisible(true); 
        frame.add(pb); 

       } 
      }); 

    void iterator() throws InterruptedException 
     { 
      int i = 0; 
      while(i < 100) 
      { 

       pb.setValue(i); 
       i = i+5; 
       Thread.sleep(300); 

      } 
     } 

답변

0

나는 SwingWorker을 만들 것입니다.

SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() { 
    protected Void doInBackground() { 
      //do stuff 
      setProgress(progressValue); //when you want to update the progress, do this 
    } 

} 
worker.addPropertyChangeListener(new PropertyChangeListener() { //this runs whenever the progress is changed, to actually set the progress of the JProgressBar 
      @Override 
      public void propertyChange(PropertyChangeEvent evt) { 
       if ("progress" == evt.getPropertyName()) { 
        int progress = (Integer) evt.getNewValue(); 


        pb.setValue(progress); 

       } 
      } 

     }); 
worker.execute(); 
관련 문제