getViewPort() ti ritorna un riferimento all'oggetto che si occupa di visualizzare la parte del componente "visibile".
In un JScrollPane ci puoi inserire un componente grande a dismisura, ma solo una minima parte di esso risulta visibile sullo schermo. Il componente che si occupa di visualizzare quella parte è il JViewPort. E' quello, quindi, che deve avere lo sfondo colorato.


Ciao.