2016-03-31 14 views
0

進行状況バーをサービスの進行状況にバインドしようとしています。シーンビルダーでプログレスバーを作成し、以下のコードを試しました。しかし、プログレスバーは継続的に実行され、接続されているサービスを表すものではありません。サービスが実行されている間に実行され、ダウンロードされているデータを表す必要があります。私が作成したサービスを表すためにプログレスバーをバインドするにはどうすればいいですか?JavaFXのサービスへの進行状況バーのバインド

@FXML 
private ProgressBar ProgressBar; 
service.start(); 
ProgressBar.progressProperty().bind(service.workDoneProperty());  

答えて

1

あなたは、サービスのprogressProperty()にプログレスバーのprogressProperty()をバインドする必要があり、そのworkDonePropertyすなわち

import javafx.application.Application; 
import javafx.concurrent.Service; 
import javafx.concurrent.Task; 
import javafx.scene.Scene; 
import javafx.scene.control.ProgressBar; 
import javafx.scene.layout.StackPane; 
import javafx.stage.Stage; 

public class Main extends Application { 
    @Override 
    public void start(Stage primaryStage) throws Exception { 

     ProgressBar progressBar = new ProgressBar(); 
     StackPane root = new StackPane(progressBar); 
     Scene scene = new Scene(root, 200, 200); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
     Service service = new Service() { 
      @Override 
      protected Task createTask() { 
       return new Task() { 
        @Override 
        protected Object call() throws Exception { 
         for(int i=0; i<100; i++){ 
          updateProgress(i, 100); 
          try { 
           Thread.sleep(100); 
          } catch (InterruptedException e) { 
           e.printStackTrace(); 
          } 
         } 
         return null; 
        } 
       }; 
      } 
     }; 
     progressBar.progressProperty().bind(service.progressProperty()); 
     service.start(); 
    } 

    public static void main(String[] args) { 
     Application.launch(args); 
    } 
} 
+0

こんにちは@ItachiUchihaに、私は「service.progressPropertyを()」試みたが、プログレスバーがまだ実行を継続しません、サービスが終了した後。プログレスバーをサービスにバインドする前に、プログレスバーの値を0に設定する必要がありますか? – borson89

+0

あなたの実装に問題があると思います。どのように実装したのですか? – ItachiUchiha

+0

私はタスクとサービスを使用してデータを取得するスレッドとGUIを構築する別のスレッドの2つのスレッドを持ち、いくつかの機能を備えています。私はメインスレッドでタスククラスの新しいインスタンスをインスタンス化しました – borson89

関連する問題