Eh o seguinte pessoal uso a swingworker pra enviar arquivos pesados de atraves de uma interface, fiz umas implementacoes tipo colocar varios arquivos em um arraylist e depois enviar, so que ao fazer isso o swingworker nao funciona mais ou seja naum consigo enviar mais arquivos, o botao simplesmente quando clicado naum faz nada, dai se eu tiro o swingworker volta a funcionar., alguem teria uma sugestao??? outra alternativa, sei lah, qualquer coisa seria util.
Abracos
Obs.: abaixo os codigos!!!
Metodo de envio usando a swingworker
public void sendFile()
{
SwingWorker worker = new SwingWorker()
{
public Object construct()
{
try
{
while(ite.hasNext())
{
File file = (File) ite.next();
fileUpload = "/"+file.getName()+"/";
output = filePath + fileUpload;
InputStream in = new FileInputStream(file);
OutputStream out = new FileOutputStream(output);
bytesUploaded = 0;
byte[] buffer = new byte[100000];
int percVal = 0;
while((tamanho = in.read(buffer)) >= 0)
{
bytesUploaded += tamanho;
percVal = (int) ((bytesUploaded / fileSize) * 100);
currentFileUpPercent = percVal;
barra.setValue(currentFileUpPercent);
out.write(buffer, 0, tamanho);
}
in.close();
out.close();
log.append("Arquivo enviado com sucesso: " + fileName + newline + newline);
barra.setValue(0);
}
}
catch(Exception e)
{
log.append("Erro ao enviar o arquivo: " + e.getMessage());
log.invalidate();
}
return new upMenu();
}
};
worker.start();
}
Botao que ao clicado envia o arquivo, ou deveria.
if(e.getSource() == sendButton)
{
if(arquivos.isEmpty() == false)
{
sendFile();
arquivos.clear();
}
else
{
JOptionPane.showMessageDialog(null, "Para enviar arquivos, crie uma lista.", "Mensagem", JOptionPane.INFORMATION_MESSAGE);
}
log.setCaretPosition(log.getDocument().getLength());
}
Rafael