2016-06-14 16 views
0

ここでは、ボタンのアクションリスナーと進行状況バーを反復するメソッドがあります。どのように進捗バーにメソッドを実装できますか?進捗バーへのメソッドの実装

私はpb.setString(イテレータ)を試みました。 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(); 
関連する問題