Boa tarde!!
Meu primeiro post no GUJ
Estou com um problema que não está tendo solução até o momento
Tenho um Jframe de cadastro de usuário.
Esse JFrame é um controle de usuários com imagem 32x32 png foto.
Ná hora da inserção tudo normal, pois guardo a path no banco e quando preciso busco novamente no banco o path, e instâncio na label
Dúvida
O problema é na hora da Alteração.(substituir o arquivo na minha pasta imagens do programa)
pelo JFileChosser busco a imagem, coloco num label, ao clicar em alterar quero qe ele substitua o arquivo antigo do usuario e já fique disponível.
Até consigui fazer, excluindo o arquivo velho, importando a classe CompareTo() da Api FileChannel recebendo o path do arquivo novo e o lugar onde ele vai substituir o arquivo por parametro, mas ao referenciar o path no label depois de pronto, ele mostra a imagens antiga ainda em cache.
Obs: ao acessar pelo windows a mudança foi executada
Espero ter explicado corretamente. Vou deixar a classe de alteração
[code] File fileAntigo = new File(“src”+usuario.getImagenUrl);
//Retira a imagem da label
frameCadastroUsuario.getLblFoto().setIcon(null);
//Deleta o imagem
fileAntigo.delete();
//Nova imagem do usuario
File origem = new File(frameCadastroUsuario.getTxtUrl().getText());
//Destino é nome da imagem
File destino = new File(“src/imagens/”+usuario.getUsuario()+".png");
FileInputStream fisOrigem = null;
FileOutputStream fisDestino = null;
try
{
fisOrigem = new FileInputStream(origem);
fisDestino = new FileOutputStream(destino);
}
catch(FileNotFoundException ex)
{
Logger.getLogger(PegarCaminhoArquivo.class.getName()).log(Level.SEVERE, null, ex);
}
FileChannel fcOrigem = fisOrigem.getChannel();
FileChannel fcDestino = fisDestino.getChannel();
try
{
//Copiando a nova imagem do usuario para o destino Pasta imagens
fcOrigem.transferTo(0, fcOrigem.size(), fcDestino);
fisOrigem.close();
fisDestino.close();
}
catch(IOException ex)
{
Logger.getLogger(ActionInserirUsuario.class.getName()).log(Level.SEVERE, null, ex);
}
}[/code]