我有一个 jLabel,其内容为“正在加载...请稍等!”
。其可见性已设置为 false。我实现了以下代码,使其在发送 HTTP 请求之前可见,并在请求完成后隐藏它。
Loading.setVisible(true);
loaddata();
Loading.setVisible(false);
loaddata 函数使用 HTTP GET 加载 HTTP 数据。内容收到非常好。但加载标签不显示。但是,当我实现此代码时:-
Loading.setVisible(true);
loaddata();
加载 jLabel 出现(但由于明显的原因不会消失)。谁能告诉我如何成功实现这一点?
最佳答案
您正在事件调度线程上执行一个长时间运行的任务,并且该任务正在阻止 GUI 重新绘制自身。
阅读 Swing 教程中关于 Concurrency 的部分。解决方案是使用 SwingWorker,这样就不会阻止 EDT。
关于java - 在发送 HTTP 请求之前显示加载 jLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20333061/