olá…vo aproveita bem esse topico pra não criar outros…hehe
eu ja consegui intende o conceito de evento do java…mais to com umas duvidas ainda…
o pq e pra q serve a classe MouseEvent ou ActionEvent que são passadas por parametro “ex: public mousePressed(EventMouse e)”?? seria essas classes um meio de sber as informações do evento que ocorreu ou estou enganado??
outra coisa…
eu consegui criar eventos do mouse usando a interface MouseListener e tb extendendo a classe mouseAdapter, porem eu não consigo remover os eventos quando eu uso mouseAdapter, eu to fazendo isso:
só q da problema dizendo q não eh do tipo mouseListener…qual seria o pau?? i pq não da esse problema quando se cria o evento soh quando remove…?
i agora uma curiosidade…todas essas classes q a Sun criou de controle de eventos são 100% feitas no proprio java ou elas tem uma mãozinha de C por baixo…??
o pq e pra q serve a classe MouseEvent ou ActionEvent que são passadas por parametro “ex: public mousePressed(EventMouse e)”?? seria essas classes um meio de sber as informações do evento que ocorreu ou estou enganado??
Sim. Serve pra saber qual botão do mouse foi clicado, onde o clique aconteceu, etc…
Acho que só você mostrando o código pra poder ajudar.
O swing é todo feito em java, mas os eventos fazem parte do java.awt. Então eu acho que devem usar código nativo sim.
O
ozzyjuniorPJ
vlw pela resposta cara...agora ta ai a duvida q fico faltando sobre não remover o evento...
classeventodomouse{JFrameframe=newJFrame();JButtonbutton=newJButton();publicstaticvoidmain(Stringarg[]){eventodomouseEM=neweventodomouse();}publicvoideventodomouse(){eventose=neweventos();//Adiciono o eventobutton.addMouseListener(e);//Removo o evento (isso não tem logina, mas eh pra exemplifica)button.removeMouseListener(e);frame.getContentPane().add(button);frame.pack();frame.setSize(200,200);frame.setVisible(true);}classeventosextendsMouseAdapter{publicvoidmousePressed(MouseEvente){System.out.println("Clicou no botão");}}}
bom, esse eh um exemplo q fiz pra ilustra o problema...agora, caso na subclasse "eventos" ao inves de EXTENDER a classe mouseAdapter eu tivesse implementando a interface mouseListener ai sim funcionava...mas ai eh complicado pois essa interface exite todos os metodo da mesma, i não seria tão viavel usa-la pois soh tenho UM evento que preciso...
i outra coisa...
quando eu crio uma CLASSE ANONIMA para o evento, como faço para remove-lo tb?? ou não existe essa possibilidade
ex:
button.addMouseListener(newMouseAdapter(){publicvoidmousePressed(MouseEvente){System.out.println("Clicou no mouse com uma classe anonima");}});
i outra coisa..srs..
qual a diferença da classe button.addActionListener, pergunto isso pois ela tb tem o evento do click do mouse quando se cria ela...vlw ae galera, to aprendento pacas nesse forum...
S
SchuenemannPJ
Rapaz, sua classe compilou numa boa.
Classes anônimas não podem ser re-aproveitadas.
E ActionListener é pra ação. Quando o botão for clicado, ou o cara apertar enter ou espaço com o foco nele.
MouseListener é pra eventos de mouse. Quando o botão é clicado (dá pra saber qual foi o botão), quando o mouse passa por ele, etc…
O
ozzyjuniorPJ
putz…vo da uma analizada melhor no codigo pra ve o pq não ta funcionando…na vdd esse foi um exemplo q dei pois axei q era esse o problema, mas como não eh …