gpt4 book ai didi

java - panel.setVisible(true) 之后 JPanel 不显示

转载 作者:行者123 更新时间:2023-12-02 12:21:30 24 4
gpt4 key购买 nike

我正在开发一个桌面应用程序,我的目标是使用 Jsoup.connect() 获取给定的 URL。工作正常,但需要几秒钟,所以我想在它不完整的时候显示一个“正在加载”gif 或其他东西。获取并显示加载 JPanel 以进行相同的按钮单击。

如果我只想将 JPanel 设置为对按钮单击可见,则效果很好(代码如下)

private void btnRefreshSelectedActionPerformed(ActionEvent e)
{
panelRefresh.setVisible(true);
}

但是当我添加 url 获取时,我的面板不会显示,但应该会看到它 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);
}

有什么问题吗?

最佳答案

我不熟悉 Jsoup API,所以只是猜测,但是..您确定方法 Jsoup.connect() 是同步的吗?也许它只是在一个单独的线程上启动连接并立即返回,然后另一个线程在连接建立时调用一些处理程序?

在这种情况下,您的 JPanel 可见性在 true 后立即切换为 false,因此实际上您根本看不到它。如果是这种情况,那么您应该更改建立连接时调用的处理程序的可见性,而不是在 btnRefreshSelectedActionPerformed 方法中。

关于java - panel.setVisible(true) 之后 JPanel 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45750530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com