Duvida com addActionListener

Ola pessoal. Tenho uma aplicacao que utiliza muitos formularios e dentro deles ha um grande numero de perguntas onde ha radion buttons SIM e NAO. Pra evitar criar mts deles, criei uma classe que herda JPanel contendo dois radio buttons (sim e nao) e um metodo que retorna qual deles esta selecionado.

Porem alguns formularios, ao clicar no botao sim, um txtfield deve ser habilitado e ao clicar em nao desabilitado.

Imaginei um addActionListener… mas nao quero que essa classe que herda acesse a interface grafica… seria gambiarra…

Enfim, ha como criar um ActionListener pro JPanel, visto q o mesmo nao aceita o metodo addActionListener… e nesse actionlistener, a funcao retornaria um boolean e na interface grafica eu habilitar ou desabilitar o txtfield assim que eu clicar em algum dos radio button?

Abracos…

Também to com duvida nisso.

Minha sugestão: Além do construtor padrãodo seu Panel customizado, acrescente também um outro construtor que receba como parâmetro um ActionListener. Esse construtor, além de inicializar o componente, deve também associar esse ActionListener recebido aos option buttons.

Abraço,

Armando

Tem sim como criar um addActionListener.

O Swing tem até uma classe para te ajudar, achamada EventListenerList.

Não tem muito segredo não. Crie o método chamado addActionListener na mão e cadastre os listeners numa lista.

Crie um método protected fireActionListener. Nele, percorra a lista chamando o método ActionPerformed do seus listeners. Você terá que criar o evento na mão também.

Quando o usuário alterar o valor dos radios, chame o método fire…

Um pouco trabalhoso, mas fazer a coisa da forma certa dá ótimos resultados.

Dê uma no exemplo:
http://java.sun.com/developer/codesamples/examplets/javax.swing/190.html