Estou tentando criar uma aplicação desktop MDI e gostaria de saber como poderia fazer com que um botão de uma determinada tela (JIternalFrame) ao ser clicado executasse um determinado metodo de outra tela.
Tenho um JFrame chamado TelaPrincipal, onde existe um JDesktopPane e um menu. Um dos ítens do menu cria uma tela (JIternalFrame) com uma listagem qualquer. Essa tela possui um botão para cadastrar que chama a tela de cadastro e que, quando clicado em um botão, gostaria que atualizasse a tela de listagem.
Como poderia fazer isso mas que servisse para todas as situações da minha app?
seu JFrame principal provavelmente deve ter um objeto do tipo frameInclusao, ou frameCadastro, algo desse tipo…
vc precisa fornecer um metodo, nesse JFrame principal, que retorne esse objeto para as demais classes… algo do tipo
public MyFrameCadastro getFrameCadastro() {
return frameCadastro();
}
dentro do seu objeto frameCadastro, vc implementa um metodo que faça o ‘reload’ da listagem… ai qdo qqer lugar do seu sistema quisesse atualizar a listagem, faria algo como:
acho que isso solucionaria seu problema…
posteriormente, vc poderia usar algum pattern, algo tipo Observer, pra que essa atualização nao precise ser chamada em todos os lugares que alterarem a lista… mas isso ja são outros 500…
Na verdade não tenho na minha tela principal um objeto da classe cadastro.
Somente da tela de listagem onde, nesta tela é que instancio e chamo a de cadastro!
Mas acho que uma forma legal de fazer isso seria em 3 camadas neh? Onde talvez eu tivesse uma classe de controle que controle essas duas classes (telas) …
Então, no menu da tela principal eu crio uma instancia da classe de controle para esse cadastro, neste controle eu poderia ter dois objetos uma de cada classe, tela de listagem e tela de cadastro.