我开发汽车管理系统程序。然后,我想在汽车进出时将邮件发送给该公司的所有者。我的代码可以成功发送邮件,但是我注意到在发送邮件时,其他JFrame窗口被冻结(我无法在所有JFrame窗口上执行任何操作),直到完成邮件发送为止。这通常用于Javamail还是有办法使其他JFrame仍然正常工作?
在我的程序中,大约需要10秒钟才能完成发送一封邮件。
当您执行繁重的任务时,应在另一个线程中运行它们,而不是与gui相同。如果您在“
事件调度线程”中运行,则该GUI将冻结直至完成。
您可以使用SwingWorker,这是一个示例,我真的很喜欢Swing
Worker示例
例:
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);
}
}
问题内容: 这是一个片段 我正在使用和作为文本框。文本框应显示“ Hello”,然后等待一秒钟,但是,当我尝试执行此操作时,它会等待一秒钟,然后放置“ Hello”一词,这不是我想要的。 我不确定为什么会这样,因为我将其按逻辑顺序放置。如果有人可以帮助我,那就太好了。 编辑: 有谁知道替代方案,所以我可以使用“延迟”效果吗? 问题答案: 永远不要从Swing事件线程中调用Thread.sleep(
我一直试图使这个应用程序,将产生一个折线图后,我点击"添加新数据项"按钮。现在,在我点击按钮后,什么都没发生(gui冻结),在我最大化框架后,图形出现在框架内,这意味着我的程序工作了,但我不知道为什么我的gui冻结了。我见过类似的问题,人们回答说必须引入一个新的线程来处理不同的拍摄,我也尝试过,但它仍然不起作用,只是让情况变得更糟。有人知道我犯了什么错误吗?这是我的代码: 谢谢你!
问题内容: 我正在尝试使用Swing和ACM交互程序制作一个非常简单的程序。它直接从课堂讲义中获取,但在我的计算机上不起作用。当我运行它时,它可以正常运行约半秒钟,然后短暂闪烁,重新加载,然后所有按钮和文本字段功能都丢失。这是代码: 如果有帮助,我将在运行Mac OSX 10.8.4的2010年中的Mac Pro上将Java SE 1.6与Eclipse Helios Service Releas
当数据被不可变地借用时,它还会冻结(freeze)。已冻结(frozen)数据无法通过原始对象来修改,直到指向这些数据的所有引用离开作用域为止。 fn main() { let mut _mutable_integer = 7i32; { // 借用 `_mutable_integer` let _large_integer = &_mutable_
『冻结』你的代码是指创建单个可执行文件,文件里包含所有程序代码以及 Python 解释器。 像 Dropbox、星战前夜、文明 4 和 BitTorrent 客户端都是如此。 进行这种分发的好处是你的用户不需要安装所要求的 Python 版本(或其他)即可直接运行你的应用程序。 在 Windows 上,甚至许多 Linux发行版和 OS X,系统自带的 Python 版本总是不尽如人意,此时这种分
注意:我工作了很多时间并研究了google和stackoverflow,但我找不到答案。 我用线。sleep(),它冻结了所有其他JDialog、JFrame和线程。 我的示例代码: 在这种情况下,JDialog无法正确显示: inccorect出现jdialog 但它必须符合这一点: true出现jdialog 我怎样才能解决这个问题。我想让主线程等待另一个线程。有人可以纠正我的示例代码,或者在