Okay, I found a solution.
Instead of creating the Display2D in the init() method, I moved it to the
start() method and used this.controller.registerFrame() to register the
frame with the controller. 
Now everything works, because I create the Display2D now after I have set
the new grid dimensions in the controller window. It seems that I could move
in principle everything from the init() method into the start() method. But
why do I need then a separate init() ?  
Any comments ?