i wondering how stop mousedmoved being fired. i've been googling can't find answer. there method this? i'm using eclipse , went through mouseevent methods can't find anything.
public class drawing extends jpanel { private arraylist<point> pointlist; private int counter = 0; public drawing() { setlayout(new flowlayout()); setbackground(color.white); pointlist = new arraylist<point>(); addmouselistener(new mousetrackerlistener()); } public void paintcomponent(graphics pen) { super.paintcomponent(pen); (int = 0; < pointlist.size(); i++) { point p = pointlist.get(i); pen.filloval(p.x, p.y, 10, 10); } } private class mousetrackerlistener extends mouseinputadapter { public void mouseclicked(mouseevent e) { counter++; if (counter % 2 != 0) { addmousemotionlistener(new mousetrackerlistener()); } else { system.out.println("hi"); } } public void mousemoved(mouseevent e) { point point = e.getpoint(); pointlist.add(point); repaint(); } }
you can create boolean
toggle if it's on drawing status or not. name boolean
isdrawingmode
so when click mouse.. set false, if click again, become true;
all have toggle boolean isdrawingmode
when mouse clicked
so mousemoved listener
this
public void mousemoved(mouseevent e) { if (!isdrawingmode) return; //if isdrawingmode false, not trigger draw point point = e.getpoint(); pointlist.add(point); repaint(); }