各要素がラベル付きの JPanel の形式で視覚的表現 (ビュー) を持つデータ (モデル) のコレクションがあります。GUI ページを更新するメソッドは次のとおりです。
public void updateGUIPage(){
guiPage.removeAll();
for(MyElement element: myCollection) {
guiPage.add(new VisualElementWhichExtendsJPanel(element);
guiPage.add(Box.createVerticalStrut(10);
}
}
updateGUIPage() は、コレクションが変更されるたびに呼び出されます。ご覧のとおり、既に作成されたビジュアル要素は削除され (書籍で知っているように、後でガベージ コレクターによって破棄されます)、コレクション内の各要素に対して新しいビジュアル要素が作成されます。この方法はあまり効果的ではありませんが、一般的にアプリケーションを非常に単純化します (多くの GUIPage があり、それらの多くは同じ要素を表示するため、2 番目の GUIPage に追加すると、最初の GUIPage から削除されます。それが Swing の仕組みです) では、問題は、アプリケーションでそのようなアプローチを許可するか、それとも追加の計算を行い、新しいオブジェクトの過剰な作成を避ける方がよいか (コレクションの平均サイズが 100 メンバーを超えることはめったにないことを考慮して) です。