I need to create a grid of JXImagePanels (basically little JPanels that are easy to add images to), but the grid has to potentially contain many thousands of these. They're small enough that I can get about 30,000 of them out of a 10MB heap space when I instantiate them normally, but I suspect there's a better way to make a grid.
When they're all created, they're all the same and none of them are ever "reused" so I didn't think this would be an appropriate use of the flyweight pattern. Would anyone be able to recommend a solution?
JTable, JList, JTree, etc, use just one (or, if customized) just a few components to draw all their cells. It's a very memory-efficient system, and very performant as well. There's a model that holds the data, and whenever the table/list/tree needs to draw a cell, it configures the single "cell renderer" with the appropriate data, lets it draw itself in the right place, and then removes it. Does this make sense for your application?