Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Agile forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Creating bajillions of little objects

 
Josiah Haswell
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey ranchers!

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?

Thanks!

Joe
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24208
35
Chrome Eclipse IDE Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?
 
Josiah Haswell
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I hadn't thought of that, lemme give it a try!

Thanks!

Joe
 
Josiah Haswell
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This works perfectly, it was just the hint I was looking for!

Thanks!

Joe
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic