Using just setOpaque(false) on a JScrollPane does not make it transparent. JScrollPane contains a view-port that you must also make transparent.
setOpaque(false)
JScrollPane