繁体   English   中英

在Java中使用JProgressBar

[英]Using JProgressBar in Java

我正在制作一个从API接收数据的应用程序,但是它需要一些时间(例如大约1或2秒),我想使用JProgressBar来显示下载了多少数据,这是我的代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String snum;
        try
        {
            curfrom=(String)fromList.getSelectedItem();
            curto=(String)toList.getSelectedItem();
            snum=curval.getText();
            address="http://rate-exchange.appspot.com/currency?from="+curfrom+"&to="+curto+"&q="+snum;
            url=new URL(address);
            connect=url.openConnection();
            br=new BufferedReader(new InputStreamReader(connect.getInputStream()));
            output=br.readLine();
            String[] split = output.split("\"");
            res=split[12];
            res=res.replace(" ", "");
            res=res.replace(":", "");
            res=res.replace("}", "");
            result.setText(snum+" "+curfrom+" = "+res+" "+curto);
        }
        catch(Exception e)
        {
            result.setText("Error! Please check the Problem(e.g. Net)");
            JOptionPane.showMessageDialog(null, "An Error has Occured!", "Error!", JOptionPane.ERROR_MESSAGE);
        }
    }

我想到了制作一个进度条,该进度条将使用JProgressBar.setStringPainted(true)加载并显示其值,但是当我使用如下的for循环更新它时:

for(i=0;i<=100;i+=10)
{
    bar.setValue(i);
    try 
    {
        Thread.sleep(100);
    } 
    catch (InterruptedException ex) 
    {
        Logger.getLogger(MainApp.class.getName()).log(Level.SEVERE, null, ex);
    }
 }

但是,当我运行此代码并开始加载时,它似乎挂了100毫秒然后加载,我看不到我认为应该由该代码显示的动画。 我想看动画的发生。

提前致谢。

丢弃它,并使用围绕连接输入流包装的javax.swing.ProgressMonitorInputStream

暂无
暂无

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

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