[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]