Avatar billede conrad Nybegynder
27. oktober 2001 - 16:29 Der er 2 kommentarer og
2 løsninger

konflikt mellem actionlistener og keylistener

Jeg har et problem med at min actionlistener går ind
og \"stjæler\" events fra min keylistner. Actionlisteneren håndterer mine buttons og keylisteneren bruges til at håndtere tekstinput.

Eks
Jeg vil oprette et objekt bestående af noget tekst ved at trykke på ENTER. Desværre fanger actionlisteneren dette, og den knap jeg sidst havde trykket på bliver valgt.

Er der en måde at se på ActionEventen hvad det var der blev trykket på? Eller en anden metode til at løse problemet?

PS:og lægge áctionlistenerens funktionalitet over i en mouselistener er formentligt ikke brugbart da denne allerede er meget belastet!
Avatar billede carstenknudsen Nybegynder
27. oktober 2001 - 17:02 #1
Du kan se på din ActionEvent (ae) hvad der
blev trykket på på flere måder:
ae.getSource() giver den komponent der gav
event\'en, dvs hvis du har en JButton b
der genererede event\'en vil
ae.getSource().equals( b ) give true.
Alternativt giver
ae.getActionCommand() en String der indeholder
teksten på komponenten, dvs hvis ud har en
JButton b = new JButton(\"click me\")
vil
ae.getActionCommand().equals(\"click me\")
give true.  Det behøver ikke være teksten på
knappen der returnes, du kan selv sætte teksten
med
b.setActionCommand(\"this is the click me event\")
For et tekstfelt vil getActionCommand()
vist nok returnere teksten i feltet.
Avatar billede conrad Nybegynder
27. oktober 2001 - 17:46 #2
Jeg fik fist ikke udtrykt mig helt klart.

Problemet ligger ikke i at bestemme hvilken knap der blev trykket på (JButton) men i at bestemme om det var et tryk på enter (keyboard) der udløste actioneventen.
Avatar billede carstenknudsen Nybegynder
27. oktober 2001 - 17:54 #3
Du kan også bruge setActionCommand(String)
på et JTextField og det kan så bruges
til at detektere at det var enter der
blev trykket og så kan din kode i
actionPerformed ignorere det der skete og
lade KeyListener\'en tage var på hvad der skal ske.
Avatar billede conrad Nybegynder
01. november 2001 - 12:52 #4
Problemet ligger i at en JButton automatisk får tilknyttet nogle events, f.eks tryk på enter og space. Jeg fandt en løsning omend det var noget besværligt. Tak for din hjælp carsten selvom det ikke løste mit problem lærte jeg da lidt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester