Acessando um método de outra classe

Tenho a seguinte dúvida:

Tenho a classe framePrincipal e a classe processoSalvado, dentro de um memo pacote. A classe framePrincipal é apenas Swing (botões, textarea, panel, etc). A classe processoSalvado faz acesso a banco (JDBC) e gerencia uma necessidade de negócio.

Ocorre que a partir de um método da classe processoSalvado (métido processoCargaSalvado) necessito inserir linhas em um atributo textarea que encontra-se na classe framePrincipal e também executar um método que está na classe framePrincipal.

Qual a melhor forma de eu executar isto ? Alguem tem sugestão ou exemplo ?

Obrigado.

Reflection;

  Object paramDados[] = new Object[] {new Integer(tipo)};
            Method grava = obj.getClass().getMethod("GravaDados", new Class[] {int.class});// gravadados e metodo da classe que vc passou na variavel obj no seu caso framePrincipal 
            grava.invoke(obj,paramDados);
            

Andre,

Vou tentar sua sugestão.

Reflection?!?!!?!?!?

Com refletion é realmente possível, mas é provavelmente o jeito mais difícil, menos escalável e menos elegante. Fora que, se você tiver erros, espere-os em runtime, não em tempo de compilação.

Ao invés de reflection você tem algumas alternativas:

  1. Faça sua classe processoSalvado receber como parâmetro o frame. Ou, melhor do que isso, faça processoSalvado receber uma interface com alguns métodos que processo salvado vai chamar para fazer as atualizações e ponha seu frame para implementar essa interface;

  2. Torne seu frame um observer de processoSalvado. Assim, processoSalvado dispará eventos e fica a cargo do próprio frame adicionar linhas no textArea e chamar seu método interno. Essa é uma das alternativas mais elegantes, pois mantém a separação da camada view (seu frame) e do objeto de negócio processoSalvado

Recorra a reflection apenas em último caso. Via de regra, use somente para que ela serve: manipular classes e objetos que não estão presentes no momento da compilação.

ViniGodoy ,

O reflaction é realmente mais complexo.
Eu já havia partido para a sua sugestão, só não havia percebido a possibilidade do OBSERVER.

Tem como me fornecer um exemplo ?

Veja esse artigo do GUJ, que pode te ajudar:
http://www.guj.com.br/java.tutorial.artigo.47.1.guj

ViniGodoy,

Ficou perfeito. Valeu a força.