i have customized jbutton in java swing application. changes appearances according mouse event.
mouseevent.mouse_entered - trigger hover image button. mouseevent.mouse_pressed - trigger pressed image.
mouseevent.mouse_released - change foreground gray , render button disabled.
working fine actual mouse clicks.
i want add support pressing enter key.
calling button.doclick() did not go through hover-press-release cycle, jumped release event.
so have short , effective code doing this.
inputmap im = workspacepnl.getinputmap(jcomponent.when_in_focused_window); actionmap = workspacepnl.getactionmap(); im.put(keystroke.getkeystroke("enter"), "connect"); am.put("connect", new conectaction()); private class conectaction extends abstractaction { @override public void actionperformed(actionevent ev) { simulateclick(); } and problematic code:
public void simulateclick() { mouseevent evt; evt = new mouseevent(connectbtn, mouseevent.mouse_entered, 1, 0, 0, 0, 1, false); connectbtn.dispatchevent((awtevent) evt); //commonutil.sleep(300); evt = new mouseevent(connectbtn, mouseevent.mouse_pressed, 8, 0, 0, 0, 1, false); connectbtn.dispatchevent((awtevent) evt); //commonutil.sleep(300); evt = new mouseevent(connectbtn, mouseevent.mouse_released, 20, 0, 0, 0, 1, false); connectbtn.dispatchevent((awtevent) evt); } i trying make enter press go through same route:
trigger mouse_entered event alter button's appearance hover, followed mouse_pressed , mouse_released.
see last event effect. if i'm firing last event alone lacks liveliness interactive software. tried (as can seen commented out) have thread go sleep after each event firing, has no effect. if try fire each of other 2 events noticeable on screen themselves. it's batching messes things up.
how can fire series of dispatchevents 1 one noticed user? how can make program wait current dispatchevent work it's magic before striding on next on?
any or insights appreciated.
how can fire series of dispatchevents 1 one noticed user? how can make program wait current dispatchevent work it's magic before striding on next on?
- mouse , key event correctly implemented in buttoncomponents, don't use mouselistener, use events buttonmodel, using changelistener, example
Comments
Post a Comment