Ajuda - Com manipulação do Progress Bar

[size=14]Gostaria de saber se é possivél setar o valor Progress Bar… jProgressBar1.setValue() fora da class Frame extends JFrame… do jeito que ta atualiza normalmente o progress bar… Mas não queria dentro da classe Frame o class DownloadArquivo extends Thread… [/size]

[size=14] Lembrando o código funciona, Mas queria manipular os valores para Progress Bar fora do class Frame extends JFrame[/size]

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.JFrame;

public class Frame extends JFrame {    
  
    public Frame() {
        initComponents();
    }
   
    @SuppressWarnings("unchecked")

    //Generated Code 

public class DownloadArquivo extends Thread {
    
    long totalBytes = 0;  
    int tamanhoDoArquivo;
    int contaBytes;    
    long porcentagem;           
    
    @Override
    public void run() {
        
       String url = "http://www.devmedia.com.br/imagens/fotoscolunistas/di-logo-java-blue.png";
	    
       File arq = new File("c:\\Java.png");       
       
       try(OutputStream out = new FileOutputStream(arq, false)) {
                
            URL conexao = new URL(url);        
            URLConnection urlC = conexao.openConnection();
                
            try(InputStream in = urlC.getInputStream()) { 
                
                tamanhoDoArquivo = urlC.getContentLength();
                        
                byte[] data = new byte[1024];               
               
                
                while((contaBytes = in.read(data)) != -1){
                    
                    totalBytes += contaBytes;
                    out.write(data, 0, contaBytes);		   
                    
                    porcentagem = ((totalBytes * 100) / tamanhoDoArquivo); 
                    
                    jProgressBar1.setValue((int)porcentagem);                 
                 }
                
                in.close();
                out.close();                
              }        
        
        }catch(Exception e){ }        
        
    }       
 }                     

//Botão
private void downloadStartActionPerformed(java.awt.event.ActionEvent evt) {                                              
   
        new DownloadArquivo().start();
    
  }                                             
       
 public static void main(String args[]) {   

    //Look and feel setting code (optional)

    java.awt.EventQueue.invokeLater(new Runnable() {
            
            @Override
            public void run() {
                new Frame().setVisible(true);
            }
        });
    }

[size=14]Gostaria de outro Exemplo ou um Caminho Alternativo para isso…[/size]