El JList tiene un metodo setCellRenderer() que admite una clase que implemente la interface ListCellRenderer.
A esa clase que implementa la interface ListCellRenderer, el JList le preguntara como dibujar los items. Dicha clase debe devolver en su metodo getListCellRendererComponent() un JLabel, cuyo texto sea el del item y al que le pones el background y/o foreground del color que quieras.
Resumiendo, te haces una clase que implemente ListCellRenderer y la metes en JList.setCellRenderer().
Una pequeña tonteria, para que te funcione bien el color de background, al JLabel que devuelves debes ponerle algo asi como setOpaque(true), porque si no sera transparente, y aunque el foreground saldra bien, el background saldra transparente, es decir, del color de la lista.
Se bueno.