Avatar billede chris535 Nybegynder
29. december 2009 - 15:50 Der er 5 kommentarer og
1 løsning

Registrering af KeyEvent i while løkke

Jeg er i gang med, at lave et snake spil i en helt alm. java applikation. Til selve spil logikken bruger jeg en while løkke, som kører så længe spillet er i gang. Mit problem er, at mens denne while løkke kører, bliver der ikke registreret nogle KeyEvents, de bliver først registreret når jeg kommer ud af løkken.

Jeg mener, at jeg har lavet noget lign. i c# .net, hvor jeg kunne kalde en metode, der så kunne tjekke efter nye events. Er der noget lign. i Java, eller kan i komme med andre løsninger på dette?
Avatar billede arne_v Ekspert
29. december 2009 - 16:01 #1
Du skal starte en separat traad til din loekke, saa du ikke blokerer event traaden.

Det skal do ioevrigt ogsaa i .NET - Application.DoEvents er et grimt hack.

Mig bekendt eksisterer Application.DoEvents ikke i Swing & AWT.
Avatar billede chris535 Nybegynder
29. december 2009 - 23:20 #2
Great, havde lige håbet på en nem løsning. Anyway, tak for hjælpen. Vil du skrive et svar, så du kan få point?
Avatar billede arne_v Ekspert
30. december 2009 - 01:22 #3
Grundliggende bør du bruge en tråd. Swing kommer med flere klasser til at gøre det nemmere (husk at opdatering af Swing komponenter skal ske fra event tråden).
Avatar billede arne_v Ekspert
30. december 2009 - 01:22 #4
Og et svar.
Avatar billede chris535 Nybegynder
30. december 2009 - 19:56 #5
Tak igen.

Jeg fik det til at virke ved at oprette en ny tråd til while løkken. Til andre der måtte være interesserede og kigger her, kommer et lille fif. For at det virker som det skal, skal alle variabler der skal bruges i tråden, sendes med som parameter i constructoren i tråd klassen. Jeg kan ikke komme med nogen saglig forklaring, men det skulle de bare i mit tilfælde...
Avatar billede arne_v Ekspert
30. december 2009 - 20:33 #6
Det er helt normalt.

Et af eksemplerne i min gamle guide http://www.eksperten.dk/guide/27 bruger det også.
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