0

長時間実行される C++ アプリケーションがあり、その進行状況を追跡したいと考えています。Java でこのアプリケーションのユーザー インターフェイスを作成しました。JProgressBar を使用してネイティブ アプリケーションの進行状況を追跡する方法を教えてください。私のネイティブ アプリケーションは、完了すると整数を返します。この整数が返されると、[完了] ボタンが表示されます。しかし、ネイティブ アプリケーションが実行中であることを示すプログレス バーが必要です。

4

3 に答える 3

4

唯一の方法は、Java でコールバックを作成して (C++ のコードが Java 関数を呼び出すことを意味します)、現在の進行状況を通知するか、Java コードが呼び出してタスクの現在の進行状況を取得する関数を作成することです。

http://www.codeproject.com/Articles/22881/How-to-Call-Java-Functions-from-C-Using-JNI

次に、Java コードはその値を使用して jprogress バーを更新します。

于 2013-08-20T15:44:25.877 に答える
2

Adam の考えられるもう 1 つの簡単な解決策は、C++ プログラムで進行状況の更新を標準出力に出力することです。おそらく、進行状況のパーセントの文字列表現です。次に、Java プログラムの Process は、Swing スレッドのスレッド バックグラウンドでgetInputStream()Process を呼び出すことによって OutputStream を監視し (そうです、タイプミスではありません)、その情報を使用して JProgressBar を更新します。getInputStream()

于 2013-08-20T16:08:13.697 に答える