Nothing special to the icon property, it's just a ... property :-) So you need a custom PropertyChangeListener and register it with the button
PropertyChangeListener myListener = new PropertyChangeListener() .... {
};
// register to be only notified if the _icon_ property changes
button.addPropertyChangeListener("icon", myListener);