在所描述的場景中,Java 應用程式在合併OSXAdapter 庫來處理檔案後遇到效能問題和異常行為在macOS 上放置事件。這個問題可能源自於在執行耗時任務時阻塞事件調度執行緒 (EDT)。
要解決此問題,應修改應用程式以在單獨的執行緒上執行這些任務,同時更新 EDT 上的模型。 SwingWorker 及其 process() 方法為此提供了合適的機制。或者,可以按照提供的程式碼中的範例使用 invokeLater()。
不正確的方法:
推薦方法:
public class Controller extends SwingWorker{ public Controller() { execute(); // Starts the SwingWorker thread } @Override // Perform the time-consuming tasks (i.e., adding rows to the table) in a background thread. protected Void doInBackground() { // .... return null; } @Override // Update the GUI on the EDT after the background task is complete. protected void done() { // .... } }
以上是為什麼我的 Java 應用程式在使用 OSXAdapter 進行檔案刪除後會延遲或崩潰?的詳細內容。更多資訊請關注PHP中文網其他相關文章!