gpt4 book ai didi

java - 执行 JavaMail 时所有 JFrame 卡住

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

我开发了汽车管理系统程序。然后我想在汽车进出时给这家公司的老板发邮件。 我的代码可以成功发送邮件,但我注意到在发送邮件时,其他 JFrame 窗口处于卡住状态(我无法在所有 JFrame 窗口上执行任何操作),直到邮件发送完成。 这通常用于 Javamail 还是有办法让其他 JFrame 仍然工作?

在我的程序中,发送一封邮件大约需要 10 秒。

最佳答案

当您执行繁重的任务时,您应该在另一个线程中运行它们,而不是在与 gui 相同的线程中运行它们。如果你运行 Event Dispatch Thread然后 gui 将卡住直到完成。

您可以使用 SwingWorker这是一个我非常喜欢的例子Swing Worker Example

例子:

class Worker extends SwingWorker<String, Object> {

@Override
    protected String doInBackground() throws Exception {
//here you send the mail
return "DONE";
    }

    @Override
    protected void done() {
        super.done();
        //this is executed in the EDT
JOptionPane.showMessageDialog(null, "Message sent", "Success", JOptionPane.INFORMATION_MESSAGE);
    }
}

关于java - 执行 JavaMail 时所有 JFrame 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17627104/

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