JPanel mouseClicked() Methode reagiert nur zu 50%

Status
Nicht offen für weitere Antworten.

hdi

Top Contributor
Hey,

ich bin hier grad dabei ein Spielchen zu machen wo man wild rumklicken muss. Dummerweise reagiert
die mouseClicked() Methode nicht immer, um nicht zu sagen: Fast nie! Oftmals klick ich 5 mal und nix is...
(Ich lasse mir das ausprinten, ob sie reagiert)

Wenn man klickt wird eine Methode einer anderen Klasse aufgerufen, die überprüft unter allen Spielsteinen
ob die Maus auf einem drauf war. Erst dachte ich, die Berechnung is zu langsam, aber es dauert
0-1 ms, daran kann's also nicht liegen.

Ich weiss jetz auch nich wirklich ob es Sinn macht Code zu posten? Es is einfach so, wie ich sage:
Die Methode reagiert oft nicht, sie wird schlichtweg nicht aufgerufen.

Ich hab nur einen einzigen Thread laufen, hab ihn jetz testweise auch auf ne EventQueue gelegt,
bringt aber auch nix. Weiss auch nicht, ob es damit was zu tun hat, immerhin funktioniert mein Gameloop
einwandfrei, alles wird schön gezeichnet und da ruckelt auch nix.

Woran kann das liegen? Ich hab das schön öfters beim Programmieren gemerkt, dass das irgendwie hängt,
diese mouseClicked Methode. Aber kann janich sein.

edit: Hab jetz gemerkt: Wenn ich die Maus bewege und klicke, reagiert es nicht. Niemals. Und wenn ich sie nicht bewege dann immer. Daran liegt's also. Tja, wie is das nun? Kann JAva sowas nicht gleichzeitig? Glaub ich nich, ich
hab neulich n Applet Spiel gespielt wo das auch so war dass ich mit der Maus rumgefuchelt und geklickt hab, und es
hat immer perfekt funktioniert.
 
hm, ne, sollte eigentlich alles funktionieren...

nur mal ein vorschlag: versuche einfach so viel wie möglich aus deinem programm rauszulassen, bis du den minimalen code enthälst, der zu dem problem führt, dann siehst du das evtl. selbst...
 
mousePressed wird aufgerufen und wenn du dann die maus bewegst auch mouseDragged. mouseClicked dagegen nur wenn du wirklich klickst.
 
ja aber das ding bei mousepressed ist, dass er 2x bei einem klick reagiert: Wenn man drückt, und wenn man loslässt.
Muss man das also dann so machen, dass man nen coutner hat, und nur jedes 2.mal soll er darauf reagieren ?

edit: sry er reagiert doch nur 1x.. bin ich doof? Ich könnte schwören mir ist das schon mehr als 1 mal negativ aufgefallen,
dass er da immer 2x reagiert... und jetz auf einmal nicht.. hm ^^
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben