繁体   English   中英

使用HttpURLConnection在Java Swing中显示“正在加载”消息

[英]Displaying a “Loading” message in Java Swing with HttpURLConnection

我的程序正在获取URL时,无法显示“正在加载”消息。 我尝试使用几种不同的方法,例如ThreadSwingWorkerSwingUtilities ,但是“ Loading”消息始终在获取网页后显示。 如何在获取网页之前显示“正在加载”?

public static void get(String url)
{
    content.add(new JLabel("Loading..."));
    content.repaint();

    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            // load webpage
        }  
    });
}

但是在获取网页后,始终会显示“正在加载”消息。

那么您的代码将阻止EDT,因此GUI无法重新绘制自身。

我尝试使用几种不同的方法,例如... SwingUtilities,

您使用invokeLater()发布的代码是错误的,因为您仍在EDT上执行长时间运行的任务。

我尝试使用几种不同的方法,例如Thread,SwingWorker,-

这些是正确的方法。 长时间运行的任务应该在您的Swing worker的Thread或doInBackground()方法中执行。

阅读Swing 并发教程中的有关更多信息的部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM