JtextFild sendo setado através de outro JFrame

Tenho um Jframe chamado TelaClientes, e outro JFrame chamado TelaWebCam. através deste TelaWebCam eu faço a captura da imagem, depois movo a imagem para c:\Imagens\Clientes e renomeio de acordo com a quantidade de linha que tenho na minha Jtable, quando vou gravar no banco eu pego o caminho da foto através de txtFoto.getText(), e esse campo de texto está como publico para que eu possa acessa-lo de outrao JFrame, o problema é que quando vou setar através da TelaWebCam o texto não é transferido para o campo da TelaClientes, a função abaixo está na TelaWebCam.

public void imagemWebCam(){
    
    File imagem = null;
    String caminho = "";
    
    try 
    {
        TelaClientes tlClientes = new TelaClientes();//Objeto da tela cliente.
        
        imagem = new File(String.format((tlClientes.qtdLinhasTabela+1)+".jpg", System.currentTimeMillis()));//Cria um arquivo JPG com o nome informado.
        ImageIO.write(wCam.getImage(), "JPG", imagem);//Grava esse arquivo no disco.
        
        tlClientes.destino = Paths.get("C:\\imagens\\Clientes\\"+imagem.getPath());
        
        Files.move(imagem.toPath(), tlClientes.destino, StandardCopyOption.REPLACE_EXISTING);//Move o arquivo para a pasta local.
        
        
        tlClientes.txtFoto.setText(tlClientes.destino.toString());
        JOptionPane.showMessageDialog(null, "Imagem salva com sucesso.", "Sucesso.", JOptionPane.INFORMATION_MESSAGE);
        
        wCamPanel.stop();//Cancela a webCam
    
        this.dispose();//fecha a tela da webCam.
    }
    catch (IOException ERRO)
    {
        JOptionPane.showMessageDialog(null, "Ocorreu um erro para salvar a imagem.\n"+ERRO, "ERRO", JOptionPane.ERROR_MESSAGE);
    }
}

Por que será que o campo de texto não é setado com o caminho da foto?

SE CONSELHO FOSSE BOM, VENDIA, POR ISSO VAI UNS CONSELHOS DE GRAÇA
Acho que seria melhor fazer isto usando sockets, para a comunicação entre máquinas.
Vamos imaginar:
1 - o cliente está no trabalho e quer visualizar a sua casa;
2 - a imagem é capturada;
3 - salva num computador;
4 - do computador é lançada para o banco de dados;
5 - do banco de dados, NÃO compreendi como você lançou para o cliente;
6 - o processo É ONEROSO.
Além disso, como se trata de transmissão de dados cuja constância na transmissão pode ser relevada, o protocolo a ser implementado deveria ser preferencialmente UDP.
Então você poderia dar preferência ao stream, sem ter que salvar nada no computador e caso o cliente queira gravar a informação, ai a aplicação dele ou a da webcam deve ser capaz de o fazer e SE necessário, depois de um determinado tempo de gravação, salvar no servidor, dando preferência a maquina com a melhor rede e mais próxima do servidor do banco de dados, ou seja, depende da arquitetura.
Em se tratando de imagens, veja se compensaria a integração com um banco de dados do tipo NoSQL.
Além disso, deve ser verificada a necessidade de tratamento da imagem e velocidade de transmissão da rede.
Quanto ao método ser publico, se a aplicação do cliente a e aplicação da webcam não estão na mesma instância não haverá comunicação entre elas. Se estiverem na mesma instância e não estiverem integradas, ou não houver um mediador, também não haverá comunicação entre elas. E se estiverem na mesma instância, não seria prático ter uma tela para o cliente e outra para a webcam.
Basicamente o que você tem que montar é um servidor de imagem, que trabalha de forma semelhante a um servidor de bate papo, pois a construção de ambos é semelhante.

1 curtida

Muito boa as suas dicas, não sabia da existencia de Socket e SocketServer, e sobre a imagem o que eu gravo no banco é apernar uma string com o caminho, para depois na aplicação setar como ícone.