@Override
    public void paint(Graphics g) {
	super.paintComponents(g);
	g.setColor(Color.BLACK);

	for (int i = 0; i < BOUND_MAX_X; i += 100) {
	    for (int j = 0; j < BOUND_MAX_Y; j += 100) {
		g.drawRect(i, j, 100, 100);
	    }
	}

	synchronized (simpleCreatures) {
	    List<SimpleCreature> sL = Collections
		.synchronizedList(simpleCreatures);

	    for (Iterator<SimpleCreature> it = sL.iterator(); it.hasNext();) {
		SimpleCreature c = it.next();
		if (!c.isAlive()) {
		    it.remove();
		    continue;
		}

		if (c.isAlive()) {
		    c.paint(g);
		}
	    }
	}

	synchronized (plants) {
	    List<Plant> pL = Collections.synchronizedList(plants);

	    for (Iterator<Plant> it = pL.iterator(); it.hasNext();) {
		Plant plant = null;
		try {
		    plant = it.next();
		} catch (ConcurrentModificationException e) {
		    continue;
		}

		if (plant != null && !plant.hasTaken()) {
		    plant.paint(g);
		}
	    }
	}
    }