我有 3 层 EJB 应用程序,我需要在胖客户端(桌面 Java 应用程序)上创建一个 View ,以显示非常大的对象集合(超过 5000 个订单)。每个对象都有子属性,这些子属性也是复杂的对象,例如:
class Address
{
String value
// other properties
}
class Order
{
public String Number
// this is collection of complex object and I need first and last object to show it's
// properties in view
public List<Address> getAddresses()
// other properties
}
View 是一个订单表:
数量 |首地址 |最后地址 | ...
我的第一次尝试是加载完整的订单列表(没有子属性),然后在需要显示时动态下载子对象。但是当我有 10000 个订单并开始快速滚动时,UI 变得没有响应。
然后我尝试加载所有需要在表格中显示的订单和所有子项,但 UI 变得非常沉重和缓慢,可能是因为内存成本)。而且它根本不是胖客户端,因为我几乎所有的数据都是从 db 下载的。
解决此任务的最佳做法是什么?
最佳答案
假设您使用的是 JTable
作为合适的 TableModel
的 View ,使用 SwingWorker
查询数据库和 publish()
结果到达时。为简单起见,这个 example只需以 10 个为一组获取随机数据。请注意,随着数据的积累,UI 会保持响应。
关于java - 非常大的对象集合的客户端 View 。如何优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785480/