我们正在将Table Library用于我们的应用程序。如果我们在表中加载10000x100记录,它会占用应用程序内存的3/4并且应用程序挂起。
任何人都可以建议一个轻量级的Java Swing Table,它消耗更少的内存,并具有过滤,排序等功能。
答案 0 :(得分:2)
轻量级Java表是JTable。如果您使用扩展AbstractTableModel并使用分拣机和渲染器,您几乎可以做任何您喜欢的事情。由于模型为视图提供数据,因此您无需在加载所有信息时耗尽内存。
当你说,10000x100如果100是列数,它对于普通显示器来说可能有点太多了。你可能需要在那里打折或让它水平滚动。
如果让模型从数据库中获取数据,您将永远不需要加载整个表,因此JTable宽度可能不会有50-100甚至更多。
注意:为了使你的JTable名为“jTable1”水平滚动,请设置
jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JTable Class有一个分类器和过滤器。
阅读tutorial了解更多信息。
答案 1 :(得分:1)
表格或无表格。将10000X100记录加载到内存中听起来就像糟糕的设计,特别是如果你的内存有限。
尝试使用Flyweight设计模式,如果它适合您的应用程序,如果不尝试每次只加载表格的相关部分。
答案 2 :(得分:0)
最可能的问题与您的域模型有关。即使您的域对象有100个字段,10000对象也不会太多。但如果您的对象图太深而复杂,则对象数量会增加到数十亿数百万..因此,我强烈建议您查看您的域名模型..