Boa noite pessoal,
Sabem me dizer se tem alguma maneira de forçar o disparo de evento em um JCheckBox que já tem o addActionListener?!
Tenho vários JCheckBox’s em um JFrame e, quando clicados, disparam evento e faço o tratamento. Até aí tudo bem, mas quando abro a janela de alteração de prontuário, preciso setar os campos automaticamente (via código) e aí que ocorre o B.O., pois assim não ocorre disparo de evento.
Tenho algumas soluções em mente, mas algumas vão me dar muito trabalho e outras ficam esquisitas, separar o tratamento em um método, por exemplo.
O que eu realmente gostaria de fazer seria forçar esse disparo, como se houvesse um evento de clique mesmo.
Obrigado!
Abc,
[quote=wellington.nogueira]Na verdade, “forçar” o click é a forma errada de resolver esse problema.
Crie uma classe onde será implementado o tratamento e chame a mesma de cada um dos eventos.[/quote]
ok, para clique eu trato com actionlistener
e para mudança via código trato com o q?
[quote=wellington.nogueira][quote=wellingtonfoz][quote=wellington.nogueira]Na verdade, “forçar” o click é a forma errada de resolver esse problema.
Crie uma classe onde será implementado o tratamento e chame a mesma de cada um dos eventos.[/quote]
ok, para clique eu trato com actionlistener
e para mudança via código trato com o q?[/quote]
Depende muito da implementação. Se for ao abrir a tela você poderia colocar a chamada das alterações ao fim do desenho da tela, por exemplo…
ou pode tentar executar um ComponentListener (método componentShown).
Mas dependerá muito de tua implementação…
Dê uma olhada no Listeners Swing Tutorial.[/quote]
===================================
Bom, consegui o que eu queria da seguinte maneira:
gui.atitude[j].setSelected(true);
ActionEvent ev = new ActionEvent(gui.atitude[j], 0, "comboBoxChanged");
tratarEvCheckBox(ev);
Assim, chamo esse método tanto quando ocorre evento de clique ou quando eu mudo o estado via codigo, como ta acima!
Na verdade, “forçar” o click é a forma errada de resolver esse problema.
Crie uma classe onde será implementado o tratamento e chame a mesma de cada um dos eventos.
[quote=wellingtonfoz][quote=wellington.nogueira]Na verdade, “forçar” o click é a forma errada de resolver esse problema.
Crie uma classe onde será implementado o tratamento e chame a mesma de cada um dos eventos.[/quote]
ok, para clique eu trato com actionlistener
e para mudança via código trato com o q?[/quote]
Depende muito da implementação. Se for ao abrir a tela você poderia colocar a chamada das alterações ao fim do desenho da tela, por exemplo…
ou pode tentar executar um ComponentListener (método componentShown).
Mas dependerá muito de tua implementação…
Dê uma olhada no Listeners Swing Tutorial.
[quote=wellingtonfoz]===================================
Bom, consegui o que eu queria da seguinte maneira:
gui.atitude[j].setSelected(true);
ActionEvent ev = new ActionEvent(gui.atitude[j], 0, "comboBoxChanged");
tratarEvCheckBox(ev);
Assim, chamo esse método tanto quando ocorre evento de clique ou quando eu mudo o estado via codigo, como ta acima![/quote]
:thumbup: