Olá Pessoal.
Estou com o seguinte problema:
possuo um painel com os botoes de incluir, excluir, alterar, cancelar, sair…
e gostaria de reaproveitá-lo nos meus formulários de cadastro (para não ter que fazer todos toda vez que for criar um formulário básico de cadastro).
Ah. no meu formulário (Visao) não existe o actionPerformed, eu utilizo aquele esquema de objeto.addActionListener(actionSupport);
Se vc usa o NetBeans pode criar uma classe visual JPanel Form e colocar seus botões nela, depois é só adicioná-la a palheta (eu coloco em beans) e usar em qualquer projeto. Se não usa o NetBeans pode ao meu ver criar uma classe que estenda de JPanel e que contenha seus botões e métodos “get” que te retornem estes botões (pra vc poder alterar os atributos deles pela classe que utiliza o painel). Pra setar os ouvintes dos botões vai ser algo como:
Cara, vo te da uma dica de como fazer um negocio legal:
Em OO, tudo q e comum vc deve abstrair (“jogar pra cima, pra uma classe pai”), pra poder herdar isso depois… pq qdo vc alterar, isso vai se replicar pros herdeiros…
cria uma classe q extende JInternalFrame, crua mesmo, sem nada (ex: AbstractForm)… e nela vc poe as assinaturas dos métodos (incluir, alterar, excluir, listar, etc…)… cada herdeiro (clientes, produtos) vai reescrever esse metodo de acordo com a sua particularidade… nesse pai vc deve colocar tambem comportamentos comuns a todos forms de cadastro (pular foco de um campo pra otro com Enter, sei la cada cliente pede uma coisa)
bom… ai vc cria um panel com os botoes, taca no JFrame principal (JFrameMain, sei la)… nesse frame vai ter uma DesktopPane, onde vao ser adicionados os frames internos certo? ai no evento dos botoes vc faz assim:
exemplo: botao incluir
AbstractForm formAtivo = (AbstractForm)SeuFrame.getSuaDesktopPane.getSelectedFrame();
// vc so faz esse cast qdo tiver certeza do objeto q esta lidando
formAtivo.incluir();
Essa e apenas uma de varias maneiras de reaproveitar… na verdade ta longe de ser a mais elegante, vc poderia fazer isso criando uma interface (ex: InterfaceCadastro) e fazendo as janelas de cadastro implementarem ela… e por ae vai…