我希望用JLabel和一组图片做一个文件读取进度条(不想用JProgressBar),这是我的代码:if(retval == JFileChooser.APPROVE_OPTION){    File file = filechooser.getSelectedFile();
     if(file!=null){ 
                   try{
                      fis = new java.io.FileInputStream(file);
  
                      task = new Task();   //继承SwingWorker类
                      size = fis.available(); 
                      while((rbyte = fis.read())!=-1){
                                textArea.append(String.valueOf((char)rbyte));
                                 numOfbyte++;
                              ratio = numOfbyte * 10 / size;
                             task.addPropertyChangeListener(new Task()); 
                   //Task类中实现了PropertyChangeListener 
                                task.execute();}
}}}我想用ratio值作为数组的(存储图片的位置和名字)索引,然后用Label.setIcon去调用不同的图片,但是不知道为什么运行
后,label上看不到任何变化. 谁能帮帮我呀? 谢谢

解决方案 »

  1.   

    你的代码我不太看的明白,不过你用登录SwingWorker的话,应该可以在done()或者process()了里面更新label的icon的啊。
      

  2.   

    写在循环里不行, 我试了.
    我在循环中加了jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource/resources/icon2.png")));
     repaint();我认为按照代码每趟循环 jLabel1应该显示这个图片, 但是用debugger运行到这里单步跟踪,还是看不到
    任何效果.