Avatar billede llcoolj Nybegynder
22. maj 2002 - 20:58 Der er 6 kommentarer og
1 løsning

KeyListener

hej er der nogen der kan hjælpe en rookie i GUI programmering???

Jeg har lavet en Skabelon klasse der har nogle genveje implementeret med KeyListener og disse virker også fint i alle klasser der arver fra skabelonen så længe fokus er på det arvede panel eller på et tekstfelt med actionListener implementeret.

Problemet er at jeg har 3 JLister der alle har implementeret sine "actions" med KeyListeners, og når Focus er på disse 3 JLister virker de arvede genveje ikke...
Avatar billede codemon Nybegynder
22. maj 2002 - 21:06 #1
Du kan holde en instanst af de arvede keylisteners i dine JListers listeners, når det er genvejen der trykkes sender du manuelt listener kaldet videre til de arvede listeners.

Den løsning kræver at JListers listener også kender til genvejene, men du kan jo rimelig nemt forbedre designet hvis du synes det bliver spagetti-kode.
Avatar billede llcoolj Nybegynder
22. maj 2002 - 21:26 #2
Jeg skal lige være helt med på hvad du mener med instans af de arvede keyListeners-
Hvis du mener at jeg skal implementere genvejs-metoderne i keyPressed på klassen der arver fra skabelon klassen også- så er det det jeg forsøger at undgå ved at lade genvejene der skal kunne tilgåes fra alle skærmbilleder arve fra en skabelon klasse.
Avatar billede codemon Nybegynder
22. maj 2002 - 23:09 #3
Det mener jeg ikke du skal, men jeg skal også være helt med. Hvad skal dine genveje gøre. Og er det sådan:

Du har nogle GUI objekter som arver fra skabelon
Skabelon har nogle tastegenveje, implementeret med keylistener.
JList har selv implementeret keylisteners?

Det jeg tænkte var at hvis dine JLister selv har implementeret en keylistener, så det er deres egen keyPressed metode der bliver kaldt så kunne du derinde teste for om det er en skabelon genvej. Hvis det er det så kalder du explicit keyPressed på et Skabelon objekt og sender eventet med. Derved modtager Skabelons keyPressed et event som om det var den der var sat som listener på JList, men kun når det var en af de gyldige genveje.
Avatar billede jword Nybegynder
23. maj 2002 - 09:48 #4
Har du prøvet at adde dine genveje via actions istedet? Det plejer at virke.
Avatar billede llcoolj Nybegynder
23. maj 2002 - 22:41 #5
-> Codemon - jeg forsøger lige at finde ud af om jeg kan anvende det explicit keyPressed da jeg aldrig har hørt om det...

Du kunne måske skrive hvordan jeg skal kalde det på skabelonen...

Hvis jeg får det til at virke er pointene dine... Takker indtil nu
Avatar billede llcoolj Nybegynder
23. maj 2002 - 23:40 #6
-> Codemon- det spiller.... :-) lav lige et svar, så er pointene dine.
Avatar billede codemon Nybegynder
24. maj 2002 - 10:40 #7
Det var jo godt.

Tænk igen lidt over designet. Hvis dine JList har hardkodet genveje ind for skabelon objekter er dit program ikke så vedligeholdelse venligt.
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