Reaproveitar botoes que estao em um painel

5 respostas
C

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);

Como poderia fazer isso?

5 Respostas

thokk

ctrl + c e ctrl + v

afdestro

viva a orientação a objeto :?

FredMP

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:

fabim

ctrl+c ctrl+v em java e boa hein mano rs :lol:

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…

Espero ter ajudado

renatoes

A ideia do colega fabiocsi é boa, veja se consegue criar uma interface (axo q seria mais reutilizavel) :wink:

[]'s

Criado 28 de dezembro de 2006
Ultima resposta 28 de dez. de 2006
Respostas 5
Participantes 6