gpt4 book ai didi

java - 执行被困在按钮内

转载 作者:行者123 更新时间:2023-12-02 19:56:30 24 4
gpt4 key购买 nike

我有一个在按钮内部调用的方法,该方法几乎运行无限循环。运行此方法时我无法访问其他按钮。

如何在运行此方法时释放界面以访问其他按钮?

//methods inside the button
this.setCrawlingParameters();
webcrawler = MasterCrawler.getInstance();
webcrawler.resumeCrawling(); //<-- the infinite loop method

最佳答案

您需要使用 SwingWorker

Swing 的工作方式是它有一个主线程,即管理 UI 的事件调度线程 (EDT)。在 Swing 文档中,您将看到建议永远不要在 EDT 中运行长时间运行的任务,因为它管理 UI,如果您执行计算量大的操作,您的 UI 将卡住。这正是您正在做的事情。

因此,您需要让按钮调用 SwingWorker,以便在另一个线程中完成困难的工作。注意不要从 SwingWorker 修改 UI 元素;所有UI代码都需要在EDT中执行。

如果您单击 SwingWorker 的链接,您将看到以下内容:

Time-consuming tasks should not be runon the Event Dispatch Thread.Otherwise the application becomesunresponsive. Swing components shouldbe accessed on the Event DispatchThread only

以及有关如何使用 SwingWorker 的示例的链接。

关于java - 执行被困在按钮内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com