0

progressbar現在のプロセスが完了するまでにかかる時間を示すを追加するにはどうすればよいですか?
簡単な方法でを構築して使用するprogressbar方法は知っていますが、プロセスでそれらをバインドする方法はわかりません。

たとえば、ボタンをクリックしたときにjfilechooserを開きたいのですが、これには時間がかかる場合があります。アプリがクラッシュしなかったことをユーザーに知らせ、jfilechooserが表示されるまでにどのくらいの時間がかかるかを知らせてほしい。

前もって感謝します

4

1 に答える 1

1

問題は、自分が作成していないクラスを処理する場合、プログレスバーを実際の進行状況にリンクするのはそれほど簡単ではないということです。

いくつかのタスクの進行状況とバインドしたい場合は、次の手順を実行します。

  1. 時間のかかるタスクにスレッドを割り当てます
  2. タスクで達成した進捗状況として、親クラスの静的フィールドを使用します。(1から100までのカウンターかもしれません)
  3. 特定の期間(1秒)ごとに、その静的フィールドをチェックし、プログレスバーを設定します。
  4. タスク内では、長いプロセスを確実なステップに分割します(つまり、ファイルを開く、処理する、抽出されたデータを準備するなど)。
  5. すべての確実なステップの後、これまでの進捗状況で親クラスの静的フィールドを更新します。

セマフォを使用して静的フィールドの書き込みと読み取りのプロセスを調整してください。

于 2012-11-25T13:28:55.330 に答える