我正在使用桌面应用,我的目标是使用Jsoup.connect()
获取指定的网址。
工作正常,但它需要几秒钟,所以我想我会显示一个“加载”的GIF或其他东西,但它不完整。
获取并显示加载JPanel以进行相同的按钮单击。
如果我只想设置我的JPanel按钮点击,可以正常工作(下面的代码)
private void btnRefreshSelectedActionPerformed(ActionEvent e)
{
panelRefresh.setVisible(true);
}
但是当我添加网址时,我的面板不会显示,但应该看到它持续1-3秒。代码:
private void btnRefreshSelectedActionPerformed(ActionEvent e)
{
panelRefresh.setVisible(true);
//SwingUtilities.invokeLater(() -> panelRefresh.setVisible(true)); - still not working
//do Jsoup.connect and other things (1-3 secs runtime)
//...
panelRefresh.setVisible(false);
}
有什么问题?
答案 0 :(得分:1)
我不熟悉Jsoup API,所以只是猜测,但是......你确定方法Jsoup.connect()
是同步的吗?也许它只是在一个单独的线程上启动连接并立即返回,然后另一个线程在建立连接时调用一些处理程序?
在这种情况下,您的JPanel可见性会在true后立即切换为false,因此在实践中您根本看不到它。如果是这种情况,那么您应该更改连接建立时调用的处理程序的可见性,而不是btnRefreshSelectedActionPerformed
方法。