java - I have a Boolean variable to temporarily disable my mouse listener but it remembers wher i clicked -
i using boolean canclick mouse variable temporarily disable mouse listener, seems when re-enable mouse listener remembers click:
class mousehelper extends mouseadapter { public void mouseclicked(mouseevent e) { if(!canclick) { return; } int a=e.getx(); int b=e.gety(); if(a>=473&&a<=502&&b>=139&&b<=153&&start==true) { runonce=1; repaint(); start=false; } so set canclick false after done displaying correct screen resets canclick true:
if(runonce==2) { canclick=false; system.out.println("set false"); g.setfont(new font("timesroman",font.bold,40)); g.drawstring("correct!",325,250); try { thread.sleep(10000); } catch(interruptedexception ex) { thread.currentthread().interrupt(); } runonce=1; } if(runonce==1) { g.setfont(new font("arial",font.bold,10)); g.setcolor(color.white); g.fillrect(0,0,1000,1000); drawboxes(g); says(); s=10; g.setcolor(color.black); g.drawstring(colr.get(colr.size()-1),401,s); count=integer.tostring(level+1); g.drawstring("level:"+count,401,s+10); canclick=true; } } my problem when click during correct screen, canclick set false, when canclick set true again remembers allt place clicked.
you're sleeping in event dispatch thread. freezes gui, , prevents swing dispatching events. means while gui frozen, events pile in queue until becomes responsive again. @ time, listener gets called events have been queued.
don't sleep in event dispatch thread. if want change state after delay, use swing timer fire event update state after delay, keep gui responsive during delay.
Comments
Post a Comment