java - 在发送 HTTP 请求之前显示加载 jLabel

标签 java swing jframe

我有一个 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/

相关文章:

java - 从同一对象获得不同的输出

java - 如何在 jprogressbar 上添加文本?

java - 如何从用户在 JTextField 中的键盘输入中过滤非法/禁止的文件名字符?

swing - 获取 null/空 JtextArea

java - JFrame 中仅显示一个组件

java - 带有 Spring MVC 4.0.1.RELEASE 的 Spring Security 3.2

java - 如果两个接口(interface)包含相同的默认方法会怎样?

java - 对对象中的多个属性进行排序

JAVA jtable传值

java - 哪一种更适合游戏开发? Jpanel还是jframe?