Terrain is not visible

Hi…If  I try to load a terrain, it's not visible. It should be somewhere there in front of the cam, what's the error? thx




/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package flag;

import com.jme.app.BaseGame;
import com.jme.input.KeyBindingManager;
import com.jme.input.KeyInput;
import com.jme.math.Vector3f;
import com.jme.renderer.Camera;
import com.jme.renderer.ColorRGBA;
import com.jme.scene.Node;
import com.jme.system.DisplaySystem;
import com.jme.util.Timer;
import com.jmex.terrain.TerrainBlock;
import com.jmex.terrain.util.MidPointHeightMap;

/**
 *
 * @author Jannis
 */
public class Hallo extends BaseGame {

    public int width, height, freq, depth;
    public boolean fullscreen;
    public Camera cam;
    public Timer timer;
    public Node rootNode;
    public TerrainBlock tb;

    public static void main(String[] args) {
        Hallo app = new Hallo();
        app.setConfigShowMode(ConfigShowMode.ShowIfNoConfig);
        app.start();
    }

    public void initGame() {
        rootNode = new Node("RootNode");

        buildTerrain();

        rootNode.updateGeometricState(0.0f, true);
        rootNode.updateRenderState();
    }

    public void initSystem() {

        width = settings.getWidth();
        height = settings.getHeight();
        freq = settings.getFrequency();
        depth = settings.getDepth();
        fullscreen = settings.isFullscreen();

        display = DisplaySystem.getDisplaySystem(settings.getRenderer());
        display.createWindow(width, height, depth, freq, fullscreen);

        cam = display.getRenderer().createCamera(width, height);
        cam.update();

        display.getRenderer().setBackgroundColor(ColorRGBA.gray);

        Vector3f loc = new Vector3f(0.0f, 0.0f, 25.0f);
        Vector3f left = new Vector3f(-1.0f, 0.0f, 0.0f);
        Vector3f up = new Vector3f(0.0f, 1.0f, 0.0f);
        Vector3f dir = new Vector3f(0.0f, 0.0f, -1.0f);

        cam.setFrustumPerspective(45.0f, (float) width / (float) height, 1, 1000);
        cam.setFrame(loc, left, up, dir);

        timer = Timer.getTimer();

        KeyBindingManager.getKeyBindingManager().add("Exit", KeyInput.KEY_ESCAPE);

        display.getRenderer().setCamera(cam);
    }

    public void reinit() {
    }

    public void render(float interpolation) {
        display.getRenderer().clearBuffers();
        display.getRenderer().draw(rootNode);
    }

    public void cleanup() {
    }

    public void update(float interpolation) {
        timer.update();
        interpolation = timer.getTimePerFrame();

        if (KeyBindingManager.getKeyBindingManager().isValidCommand("Exit")) {
            System.exit(0);
        }
    }

    public void buildTerrain() {
        MidPointHeightMap mp = new MidPointHeightMap(64, 1.0f);

        Vector3f terrainScale = new Vector3f(20.0f, 1.0f, 20.0f);

        tb = new TerrainBlock("terrain",
                mp.getSize(), terrainScale,
                mp.getHeightMap(),
                new Vector3f(-2.0f, -2.0f, -20.0f));
        rootNode.attachChild(tb);
    }
}