問題タブ [progressmonitor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse-plugin - Eclipse Jobs API:別のジョブによってスケジュールされたジョブの進行状況を追跡する方法は?
別の Eclipse ジョブにスケジュールして参加する Eclipse ジョブの進行状況モニターを使用する適切な方法は何ですか? サブタスクをメインタスクに関連付けたいです。
理想的には、メイン モニターから作成されたサブタスクを実行するように指示できるようにしたいのですがSubProgressMonitor
、これを行う方法がわかりません。メソッドを見てきましたJob.setProgressGroup(..., ...)
が、ドキュメントには、グループを で作成する必要があることが示されていIJobManager.createProgressGroup()
ます。
コンテキストのコード スニペットを次に示します。
java - スタンドアロン アプリケーションでの Eclipses Progress Monitor ウィンドウの使用
私は SWT/JFace アプリケーションを作成していますが、スタンドアロン アプリケーションで Eclipse から Progress Monitor ウィンドウを使用できるかどうか疑問に思っていました。明確にするために:私はこれについて話している:
ではありませんProgressMonitorDialog
。
これが簡単に達成できない場合、自分でこれを実装する簡単な方法は何ですか?
java - 「バックグラウンドで実行」をクリックした後、進行状況モニターダイアログを元に戻します
次のようなユーザージョブがあります。
このジョブが開始されると、ジョブの進行状況を示す [バックグラウンドで実行]、[キャンセル]、[詳細] の 3 つのボタンを含む進行状況ダイアログが表示されます。これはステータスバーにも表示されます。「バックグラウンドで実行」を押すと、ダイアログは非表示になりますが、ステータスバーには進行状況が表示されます。ジョブをキャンセルしたい場合、ステータスバーから小さなボタンを押してもダイアログが再度表示されないため、これ以上キャンセルできません (進行状況ビューでバックグラウンド操作を表示します)。
誰かが私を助けてくれたらうれしいです:)。
java - Swing ProgressMonitor が機能しない
私はProgressMonitor
Java Swingで学ぼうとしています。この簡単なテストコードを作成しました-
}
これに関するいくつかの質問 -
isFrameReady
チェックを外すと、プログラムはNullPointerException
、ボタンのアクション リスナーを割り当てた行に a と表示します。上記のチェックを維持すると、ボタンをクリックしても何も起こりません。
上記のチェックを行ってからデバッグを行い、アクション リスナーの行に到達するまでしばらく待ちます。この場合、動作しますが
invokeAndWait
、イベント処理スレッドから呼び出すことができないと言ってすぐに終了します。
このすべてに何が欠けていますか?誰かがこれを機能させる方法を説明できますか。
java - 2 回目の呼び出しで ProgressMonitor が表示されないのはなぜですか?
デフォルトの Java ランタイムのプログレスバー クラスを使用するプログラムを作成しました。一度しか機能しないという事実を除いて、完全に機能します。GUI へのさまざまな画像の読み込みを表示するために使用し、起動時に正常に動作します。ただし、もう一度呼び出すと、コンテンツのない JFrame が表示されます。JFrame とすべてをドラッグできますが、何も表示されないだけです。これは、最初に実行したときに機能することを考えると独特ですが、その後は機能しません。これが私のコードです:
それを修正する方法についてのアイデアはありますか?
java - SwingでProgressMonitorを更新するには?
ProgressMonitor
長い操作を処理するように設計されていますが、直接使用すると更新されません。
java - スレッドセーフな方法で ExecutorService と ProgressMonitor を使用する
最初に ProgressMonitor を定義します。
同じスレッドで ExecutorService と invokeAll() を使用して Callable のリストを処理します。
各 Callable の形式は次のとおりです。
すなわち; 各 Callable は、progressBarUpdate() を呼び出します。
各 doSomeStuff() には独自の例外処理があり、エラーが発生するか例外がスローされると、null 値が返されます。これが、戻り値の型がリストであり、そのような場合は null を返す理由です。Callable とそれらが返すファイルのリストの間にクロスオーバーはありません。それらはすべて独自のファイルのリストを維持します。
正常に動作することがわかりましたが、次の形式の InterruptedException がスローされることがあります。
モニターの最大値に達したときに setProgress() が close() を呼び出すことを示しています。
そして close() には、他のスレッドセーフでない呼び出しが多数含まれています。
条件 nv>=max が満たされないようにコードを変更し、invokeAll() の後に明示的に ProgressMonitor.close() を呼び出しましたが、そのようなアプローチが完全にスレッドセーフであるとはまだ確信していません。
他の誰かがこの状況に遭遇し、堅実な解決策を見つけましたか?
ありがとう
グラハム
PS。ProgressMonitor は Swing ウィジェットではありませんが、Swing コンポーネントをカプセル化することに注意してください。その結果、ProgressMonitor が EDT で実行されないようにしました。
java - EclipseプラグインのIProgressMonitorで正確に機能するように設定するには?
このメソッドorg.eclipse.core.runtime.IProgressMonitor.worked(int)
は、増分を意味する整数を受け取ります。これは、使用可能な唯一の単位が自然単位であることを意味します。たとえば、パーセントにすることはできません。
そのため、ジョブでいくつかのファイルを処理する場合、カウント ステージを報告できません。最初に呼び出すorg.eclipse.core.runtime.IProgressMonitor.beginTask(String, int)
必要があるメソッドは、合計金額を知る必要があるためです。
達成する方法は?
アップデート
以下にラッパーを書きましたが、これはばかげているように見えます。