Bem so uma idéia que eu custumo usar e meus aplicativos. Eu uso e a composição de objetos ao invés de herança, e muito mais prático fazer isso em java.
Por exemplo:
Eu todos os meus cadastro tenho os seguintes botões, Inserir, Excluir, Salvar e Localizar. Crio um JPanel com esses botões e adicione este JPanel a paleta do NetBeans, e depois e so arrastar e soltar nos formulários de cadastros.
Tenta usar um dos principios da Orientação objetos: Prefira composição ao invés de gerança
J
jrtm
Tudo bem… posso até usar dessa forma… mas e por exemplo… terei um metodo de comportamento dos botões… ex. : qdo clico no botão inserir habilita o botão salvar desabilita o botão pesquisar e etc… se eu usar a composição terei que duplicar esse metodo em todas as classes…
o que vc acha??
obrigado
att,
Jonathan Martinez
paulofafism
Não você não tera que duplicar o código. Por exemplo na minha aplicação como te falei um uso um JPanel com os botões Inserir, Excluir, Salvar, Cancelar e Localizar a logica dos estados dos botões ficam todas no JPanel. Agora vc me pergunta como eu consegui isso. usei alguns padrões de projeto principalmente o Strategy que me permite variar o comportamento dos meus objetos.
Um exemplo simples: Não vou colocar todo o codigo, é apenas um esboço para vc fazer na sua aplicação
Acredito que seguindo este esboço vc conseguira fazer o que vc quer. E vc tera que fazer isso apenas uma unica vez
//Inteface interfaceNavegador{voidinsert();voiddelete();voidsave();voidcancel():booleanisInsert();booleanisSave();booleanisDelete();}//Classe JPanelpublicclassJPanelNavegadorimplementsNavegador{privateNavegadornavegador;privatevoidinitComponents(){//Aqui ficam as configurações dos componentes instancias entre outros}//Os métodos insert, delete, save e cancel, você chama eles em cada respectivo botão//No botão Novo vc chama o insert, No botão Excluir vc chama delete etc.... publicvoidinsert(){navegador.insert();}publicvoiddelete(){navegador.delete();}publicvoidsave(){navegador.save();}publicvoidcancel(){navegador.cancel();}//Este metodos são os estados dos botõespublicbooleanisInsert(){returnnavegador.isInsert():}publicbooleanisSave(){returnnavegador.isSave();}publicbooleanisDelete(){returnnavegador.isDelete();}publicvoidsetNavegador(Navegadornavegador){this.navegador=navegador}}//Agora vc deve um classe Concreta onde vai ficar toda logica de Persistencia generic//A instacia dessa classe vc deve passar para o metodo setNavegador da classse JPanelNavegador publicclassNavegadorPersistenciaimplementsNavegador{//metodos na interface Navegador implementando a regra de persistencia}