Quello che devi capire è che JFrame è un componente un pochino più complesso rispetto ad altri e ad esempio rispetto al "vecchio" java.awt.Frame.Originariamente inviato da ramy89
Faccio un esempio (in realtà non capita solo con questo metodo, ma anche con altri):
Ho provato a impostare il colore di background della finestra come arancione, ma mi compare sempre una finestra bianca.
Un JFrame contiene come unico "figlio" solo un JRootPane che a sua volta contiene quello che viene chiamato "content pane" (il contenitore dove si aggiungono i componenti) e un "glass pane" (un pannello che per default è nascosto e trasparente che serve per effetti particolari).
Se fai window.setBackground(....) stai settando la proprietà background del JFrame ma non la "vedi" perché nel JFrame c'è dentro (sopra al suo sfondo) il JRootPane che a sua volta contiene il content pane. E il content pane per default è oltretutto "opaco" e con un suo colore.
Per farla breve: generalmente la soluzione più veloce è assegnare il colore al content pane.
window.getContentPane().setBackground(Color.orange);
P.S. E tutto quello che ho detto è ben documentato, se avessi letto un pochino la documentazione javadoc e/o il tutorial ufficiale di Java.