Yes, a two-dimensional array would do the job for storing the data. When you get more advanced, you will start calling that the model. However, there is no magic way to turn the array into the grid you describe. One day, you'll call that the view. I think the best bet is to extend JPanel, or even Canvas, and override the paint method to draw your grid, based on information from the array. There's also the idea of a controller, which allows a user to change the data in the model, and see then see the changes reflected in the view. You didn't ask about that though, so I'll stop confusing you.