Steps to reproduce: 1. Open Swing demo 2. Click and hold left mouse button on a JButton (button is painted darker, due to getModel().isRollover() == true) 3. Move the mouse out of the button' area (button is painted lighter, due to getModel().isRollover() == false) 4. move it back into the button -> button should be painted as darker again and getModel().isRollover() should return true but it does not on Classpath. Further inspection (putting println in DefaultButtonModel.setRollover()) shows that at step 4 only 'false' is sent to the method.
I take this.
I looked into this some time ago, I believe it is a problem with the model. I am not 100% sure though.
I took a look at the DefaultButtonModel class. I fixed one small issue (clearing ARMED and PRESSED when the model is set to NOT SELECTED), which I don't think is related to this bug, but everything else looks OK. I think the bug is hiding elsewhere...
Fixed by patching LightweightDispatcher.