You have quite a few options, but overriding the LookAndFeel functions are what I do most (the last option below).  Here are some possibilities:
Using PNGs (you can also use SVGs)
With Blueprint
An example just using what JUCE provides (LookAndFeel class)
             
            
              
              
              2 Likes