Buenas,
Este es un ejercicio sobre todo de manejo de arrays bidimensionales. La representacion grafica es lo de menos. Te basta con utilizar los metodos draw* y fill* de Java Graphics.
Yo me estudiaria este ejemplo hasta entender como funciona y luego trataria de hacer mi propia implementacion, ya que es muy mejorable:
http://rosettacode.org/wiki/Conway's...ife/Java/Swing
Un saludo