我有一个数据集合(模型),其中每个元素都有一个带有标签的JPanel形式的可视化表示(View)。以下是更新GUI页面的方法:
public void updateGUIPage(){
guiPage.removeAll();
for(MyElement element: myCollection) {
guiPage.add(new VisualElementWhichExtendsJPanel(element);
guiPage.add(Box.createVerticalStrut(10);
}
}
每次收集更改时都会调用答案 0 :(得分:2)
完全同意 assylias ,我在UI开发方面的经验(2年以上的GWT)告诉我同样的事情。为了简单起见,但要确保测量性能以确定方法的极限。
答案 1 :(得分:1)
所以,问题是:您是否允许在您的应用程序中使用此方法,或者最好进行额外的计算并避免过度创建新对象(考虑到平均收集大小将很少超过100个成员)?
答案取决于创建新对象的相对成本与更新它们的成本。确定这些成本的唯一方法是衡量它们。 (而相关的问题是绝对表现是否“击中”它是否会以较慢的方式做到这一点足以产生真正的差异......)
但是,这听起来像是一个过早优化的情况。我认为你会更好地以更简单的方式实现应用程序,然后看看它的执行情况。如果它太慢,那么 profile 它可以确定实际性能瓶颈的位置。如果分析告诉你这个方法是一个重要的瓶颈,考虑做一些事情......否则,不管它。