2017-01-20 20 views
0

私は "プログラミングのことで、新しいことを学ぶことを試みます。 私の" app "はバットテストファイルを実行し、テキストエリアに印刷されたすべての結果はうまくいきます。 私はいくつかのガイドを読んだことがありますし、何かを試してみましたが、それは私のために働いていませんjavafx、テキストエリアに印刷中に進行状況バーを表示する方法

これは、バットファイルを実行するボタンの背後にあるメソッドです

public void RunTestScrip() throws IOException { 

    Process p = Runtime.getRuntime().exec(path); 

    final InputStream stream = p.getInputStream(); 
    new Thread(new Runnable() { 
     public void run() { 
      BufferedReader reader = null; 
      try { 
       reader = new BufferedReader(new InputStreamReader(stream)); 
       String line = null; 
       while ((line = reader.readLine()) != null) {      
        console.appendText("\n" + line); 
        progressBar.progressProperty().bind(RunTestScrip()); // dont know how to use it right in my code 

       } 
      } catch (Exception e) { 
       // TODO 
      } finally { 
       if (reader != null) { 
        try { 
         reader.close(); 
        } catch (IOException e) { 
         // ignore 
        } 
       } 
      } 
     } 
    }).start(); 
+2

受信するデータの量が分からない限り、進捗バーを更新する方法はありません(進捗状況はどのように設定されますか?)。あなたはその情報にアクセスできますか? –

+1

もしあなたがデータを持っていなければ、作業が完了するまで値 '-1'を持つ' ProgressIndicator'を表示することができます。 – GOXR3PLUS

+0

自分の好意を持って試してみてください。私はあなたがもうJava 6を使用していないと確信しているので、それらのfinallyブロックを取り除き、単一のステップで 'reader'変数を宣言して初期化することができます。 – fabian

答えて

1

私は考えていませんtはjavafx ProgressBarを更新できます。最も簡単な方法は、進行状況に関する独自のルールを作成することです(おそらく現在コンソールに追加している出力に基づいているでしょう)。

javafxで作業中のプログレスバーを作成する方法は、tutorialです。うまくいけば、あなたはそれに応じて進行状況を更新する方法を見つけ出すことができます。

編集:

は、私が提供するリンク休憩場合には、チュートリアルで見つけることができるかの小さな例を追加しました。

// initialization of a progressBar with 'indeterminate progress' 
ProgressBar pb = new ProgressBar(-1.0D); 

// to set the current state of a progress bar you simply do the following 
pb.setProgress(current_progress); 

進捗は0.0Dから1.0Dの間の値であることに注意してください(例:パーセンテージ)。 -1.0Dの値は、進捗が不確定であることを示します。

+0

追加してくださいあなたの答えの周りのいくつかのコンテキスト。リンクのみの回答は理解しにくく、ウェブサイトがダウンしているか機能していないと無効になる可能性があります。それはあなたがこの記事自体に言及しているリンク/ブログの最も関連性の高い部分を再現することができる場合は、アスカーと将来の読者に役立ちます。この '(line.contains( "[INFO] SUCCESSを構築"))であれば \t \t \t { \t \t \t \t progressBar.setProgress(0.7)のようなif文 – RBT

+1

おかげで、あなたを、 私が追加しました。 \t \t \t} と私にとっては十分です –

関連する問題