在所描述的场景中,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中文网其他相关文章!