user interface - Click counter Java GUI -
this program supposed count mouse clicks counts first one. help!! code not complicated dont understand why counts first click. resets after stop clicking
import java.awt.eventqueue; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jlabel; import java.awt.font; import java.awt.event.mouseadapter; import java.awt.event.mouseevent; public class clickcounter { private jframe frame; /** * launch application. */ public static void main(string[] args) { eventqueue.invokelater(new runnable() { public void run() { try { clickcounter window = new clickcounter(); window.frame.setvisible(true); } catch (exception e) { e.printstacktrace(); } } }); } /** * create application. */ public clickcounter() { initialize(); } /** * initialize contents of frame. */ private void initialize() { frame = new jframe(); frame.setbounds(100, 100, 226, 188); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.getcontentpane().setlayout(null); jlabel lblnumber = new jlabel("number of mouse clicks = 0"); lblnumber.setfont(new font("sitka text", font.bold | font.italic, 13)); lblnumber.setbounds(10, 11, 190, 28); frame.getcontentpane().add(lblnumber); jpanel panel = new jpanel(); panel.addmouselistener(new mouseadapter() { @override public void mouseclicked(mouseevent e) { int count = e.getclickcount(); lblnumber.settext("number of mouse clicks = "+ count); } }); panel.setbounds(0, 35, 210, 114); frame.getcontentpane().add(panel); } }
mouseevent.getclickcount() not absolute click counter - counts how clicked in rapid succession (to distinguish between single click , double clicks).
you need separate counter field can increment in mouselistener.
you implement this:
public class clickcounter { private jframe frame; private int count; then in initialize-method
panel.addmouselistener(new mouseadapter() { public void mouseclicked(mouseevent e) { count++; lblnumber.settext("number of mouse clicks = "+ count); } });
Comments
Post a Comment