I’m not sure if this is an ‘appropriate method’, but I use this method to get more than the standard ‘normal/hover/down’ images. I have derive from ImageButton, override ‘paintButton’, and call a routine in there which sets up the image for the button based on the criteria I want (in your case it will have to do with focus/no focus). In my case, this button has an image for up, up with mouse pressed, down, and down with mouse pressed.
void MyButton::paintButton (Graphics& g, bool isMouseOverButton, bool isButtonDown)
ImageButton::paintButton(g, isMouseOverButton, isButtonDown);
I also used this method in a button that I wanted animated. In that case I have a timer callback which calls a similar ‘SetUpImages()’, which selects the appropriates frames from the animation strip for the button.