フラクタルを表示するプログラムを作成し、ユーザーがクリックすると、プログラムが再計算され、ズームされます。しかし、プログラムが最初のズームを処理している間にユーザーがもう一度クリックすると、私はそれを停止し、2番目のズームにまっすぐにスキップします。しかし、プログラムがビジー状態であるため、マウスイベントはGUIによって決して検出されません。アプリケーションがビジー状態であってもマウスイベントが処理されるようにするにはどうすればよいですか。キュー内のMouseEventsを確認する方法
答えて
SwingWorkerを使用してください。 GUIイベント(ボタンを押すなど)によってトリガーされるバックグラウンドタスクを実行するために使用されます。
あなたはSwingWorkerをキャンセルすることができます(おそらく何らかのルーピングを行います)。新しいタスクがサブミットされた場合は、実行中のタスクをキャンセルして次のタスクを開始します。
+1、競争相手投票!これはより関連して聞こえる。基本的にはこれはスレッドで手動で行うことと同じことをしている必要があります:) – doNotCheckMyBlog
これは私のやり方とほぼ同じです。ブール値がfalseに設定されたときにキャンセルされた実行可能スレッドを使用しました。 SwingWorkerで内部的に使用されているのと同じメカニズムです。ありがとう! – Fractaly
私が上記のコメントで通常言ったように、あなたが探しているものはスレッディングと呼ばれています。このリンクをクリックすると、その情報が表示されます。
http://download.oracle.com/javase/tutorial/essential/concurrency/
バックグラウンドで他のスレッドがビジー計算している間、スレッドは、あなたのUIスレッドの仕事をできるようになります。
幸運!
ありがとう、私は別の解決策を見つけました:新しいフラクタルを生成するための実行可能ファイルを作成しました。ループは特定のブール値がfalseになったときに終了するループで実行されます。 guiがマウスのクリックを検出すると、そのブール値をfalseに設定し、新しいズーム座標で計算スレッドを再び実行します。
私は過去にSwingスレッドがうまく機能しなかったので、Swing固有のスレッドツールから離れようとしました。 – Fractaly
- 1. 着信メッセージのIBM WebSphere MQ 7.0キューを確認する最善の方法
- 2. クラス内のメソッド数の確認方法
- 3. R内のOSの確認方法
- 4. キューにメッセージがあるかどうかを確認する方法
- 5. 配列内のオブジェクトの存在を確認する方法
- 6. JList内のファイルの存在を確認する方法
- 7. イメージ内のバーコードの場所を確認する方法
- 8. ヘッドセクションの内容を確認する方法
- 9. SQL Server CEデータベースの内容を確認する方法
- 10. キュー内のメッセージを覗く方法
- 11. RAMの量を確認する方法
- 12. uibuttonのタイトルを確認する方法
- 13. リクエストのステータスコードを確認する方法
- 14. メソッドレベルのスプリングセキュリティを確認する方法
- 15. 私のFuncを確認する方法
- 16. C2DM接続を確認する方法
- 17. RD確認を抑止する方法
- 18. jspでログインを確認する方法
- 19. サウンドレコーディングソースを確認する方法
- 20. Oracleでインデックスを確認する方法
- 21. gemサポートルビを確認する方法1.9
- 22. ダーティーフラグを確認する方法
- 23. 行を確認する方法は?
- 24. Resqueキュー内のジョブをシャッフルする方法は?
- 25. 確認方法のラジオボタン
- 26. PHPジョブインスタンスの確認方法
- 27. java errorhandling:numberformatexceptionsの確認方法
- 28. C#テキストボックスの確認方法
- 29. 10桁の確認方法
- 30. NUMAの確認方法は?
スレッディングは、このタイプのケースで役立ちます – doNotCheckMyBlog