问题是jframe
没有响应,它似乎被卡住了或者在等待什么。
重要提示:longtime()
的运行时间可以不同。只有超过2-3秒的时间,问题才会出现。
我试图在invokelate
中完成所有这些操作,但这没有帮助。
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
JLabel label = new JLabel("Please wait...");
label.setFont(new Font("Serif", Font.PLAIN, 25));
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.setLocationRelativeTo(null);
frame.setUndecorated(true);
frame.pack();
frame.setAlwaysOnTop(true);
frame.setVisible(true);
try{
longTime(); //HERE IS THE FUNCTION THAT TAKES A LONG TIME
}catch(Exception e){ }
frame.dispose(); //AFTER THE LONG FUNCTION FINISHES, DISPOSE JFRAME
}
});
您必须生成另一个线程,并在另一个线程中运行longTime()任务。调用invokeLater()仍然在UI线程中运行它,您不希望阻止它。
请考虑以下代码:
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
JLabel label = new JLabel("Please wait...");
label.setFont(new Font("Serif", Font.PLAIN, 25));
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.setLocationRelativeTo(null);
frame.setUndecorated(true);
frame.pack();
frame.setAlwaysOnTop(true);
frame.setVisible(true);
new Thread(new Runnable() {
@Override
public void run() {
try{
longTime(); //HERE IS THE FUNCTION THAT TAKES A LONG TIME
}catch(Exception e){ }
frame.dispose(); //AFTER THE LONG FUNCTION FINISHES, DISPOSE JFRAME
}
}).start();
您可能希望从新生成的线程更新数据模型。这将是使用SwingUtilities.invokeLater()的正确位置。不要在这个新线程中更新模型。只能在UI线程中更新UI组件的模型。稍后调用正是这样做的。
获取宝石元数据和完整的源索引需要非常长的时间。我使用的是最新的bundler。 > 有没有办法在笔记本电脑中的多个用户或整个局域网中共享这些信息。 有什么机制可以使它运行得更快。 bundle安装 从中获取gem元数据https://rubygems.org/. 请求依赖项API时出现错误Bundler::HTTPError 从https://rubygems.org/获取完整的源索引 使用耙(1
我们正在spring boot(带有嵌入式tomcat)和spring Cloud上运行微服务。这意味着服务发现,定期的健康检查和响应这些健康检查的服务,……我们还有spring boot admin server用于监控,我们可以看到所有服务都运行正常。目前仅在测试环境中运行... 我们的一些微服务很少被调用(假设每两天调用一次),但是仍然有定期的健康检查。当这些服务的REST api在如此长的
我有一个Python进程(或者更确切地说,在一个使用者组中并行运行的一组进程),它根据来自某个主题的Kafka消息输入来处理数据。通常每条消息的处理都很快,但有时,取决于消息的内容,可能需要很长时间(几分钟)。在这种情况下,Kafka broker断开客户端与组的连接,并启动重新平衡。我可以将设置为一个非常大的值,但它可能会超过10分钟,这意味着如果客户机死亡,集群在10分钟内无法正确地重新平衡。
我正在使用转换到新时区UTC+3,这等于EAT时区,但Postgres(9.1)显示错误的时间 (默认时区为斯德哥尔摩) 如果将JodaTime与两个时区一起使用,则显示相同的正确结果“2015-01-13 10:40:00”。
问题内容: 我正在使用PHP开发电子邮件验证正则表达式,我需要知道TLD可能有效且仍然有效的时间。我进行了一些搜索,但找不到关于该主题的太多信息。那么一个TLD可能会持续多久? 问题答案: DNS允许单个标签最多包含63个字符。
我使用javamail通过IMAP协议从exchage帐户读取邮件。这些邮件是纯格式的,内容是XML。 几乎所有这些邮件的大小都很短(通常小于100Kb)。然而,有时我不得不处理大型邮件(大约10Mb-15Mb)。例如,昨天我收到一封13Mb大小的电子邮件。仅仅读它就花了50多分钟。这正常吗?有没有办法提高它的性能?代码是: 花费如此长时间的方法是。我做错了什么?有什么提示吗? 非常感谢,我的英语