Java, Problem med KeyListener

Tags:    java

Hej alle!

- Jeg er igang med at lave noget GUI med et vindue og et billede, som man skal kunne rykke rundt med, via piletasterne.. Jeg har lavet hele koden, men det er som om min KeyListener klasse ikke fungere med programmet, så billedet står bare stille, ligegyldig hvad man trykker..


What to do? o.O

Main class
Fold kodeboks ind/udJava kode 

'
Grafik klasse
Fold kodeboks ind/udJava kode 


Keyboard klasse
Fold kodeboks ind/udJava kode 




Indlæg senest redigeret d. 06.09.2012 17:00 af Bruger #16945
6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
Jacob, det er fordi du mangler at tilføje din KeyListener til din frame.

Fold kodeboks ind/udJava kode 



Dette er utestet kode, men burde give dig en god idé om hvad der er galt

Edit:
Jeg kan lige se, at du forsøger at opdatere din grafik fra din keylistener. Husk at inkluder referancen til det grafik objekt du benytter dig af og ikke, lav et nyt objekt i din keylistener :)



Indlæg senest redigeret d. 06.09.2012 18:01 af Bruger #15301
Æææææh.. - Det lader til du har ret med begge ting.. Men er et objekt ikke en referance? o.O

- Hvordan inkluderer jeg referancen til mit grafik objekt? o.O

Troede det var nok bare at lave et objekt, og så bruge dot notation til at køre den ønskede metode? Hvorfor er det anderledes her? Jeg kan ikke forstå hvorfor min kode ikke virker >.<



Din kode virker ikke fordi, det objekt du henviser til i din keylistener befinder sig et andet sted i computerens RAM end det grafik objekt du har i din MainClass.

For at sende referancen videre bør du sende den som et parameter til din keylisteners constructor.

Fold kodeboks ind/udJava kode 



Fold kodeboks ind/udJava kode 



Med nogle meget små ændringer på din main klasse og din keyboard klasse, har du sendt dit grafik objekt korrekt videre :)

PS. Husk på at hver gang du benytter dig af new keyword i java, er det fordi at du allokere noget nyt hukommelse i RAM, til at indeholde de værdier dit objekt har benytter sig af.




o.O I did not even know that..

TAK! :- D

EDIT
Men mit program virker fandme ikke alligevel >.<

Gods, troede lige det var lykkedes mig..

Har nu gjort som du sagde, men min kode virker stadig ikke.. Meget frustrerende..



Indlæg senest redigeret d. 06.09.2012 21:38 af Bruger #16945
prøv at ændre på følgende:

Fold kodeboks ind/udJava kode 



når du benytter koderne event.VK_XXXX
Så er det at du benytter int værdier,
din c værdi var en char før, og når du sammenligner int og char, så får man som regel ikke lige det resultat man forventer :)



Well, aren't I a lucky one..

- TAK MANNER !!!



t