java library ( jar )
外部ソフトウェアによって呼び出される多数の API を含む を作成しています。API の 1 つがブロッキング API になり、非常に時間のかかる操作を実行します。
操作の定期的なフィードバック (% 完了) をクライアントに提供できる方法が必要です。
NOTE
ライブラリであるため、プログレス バーの Java Swing メカニズムを使用してプログレス パーセンテージを取得および更新することはできません。私が検索するものはすべて、どういうわけかそれにつながります。
とにかくこれを行うことはありますか?
Answer Update
回答を投稿してくれたすべての人に感謝します。把握するのに役立ちました。jar で次のインターフェースを公開しました。クライアント ワーカー スレッドが登録され、進行状況の更新をリッスンします。それに応じて進行状況バーが更新されます。
void LongAPI(){
while{
do work ;
fireprogress();
}
}
public void addProgressListener(Listener listener) {
listeners.add(listener);
}
public void removeProgressListener(Listener listener) {
listeners.add(listener);
}
private void fireProgress(double pourcent) {
for (Listener listener : listeners) {
listener.setProgress(pourcent);
}
}
はListener
、すべてのクライアントが実装する抽象インターフェイスです。クライアントが必要に応じて UI を更新できる setProgress プロパティがあります。