我将CardLayout与MVC结合使用,并尝试了解何时应创建CardLayout使用的面板。
例如:
当我在ListPanel上选择DataItem时,将显示一个DetailPanel,用于查看和编辑DataItem的详细信息。
我应该在选择DataItem时创建并显示DetailPanel,还是应该在我的应用程序开始时创建DetailPanel并在选择DataItem时仅调用加载方法,然后显示DetailPanel?
目前,我正在像堆叠一样使用CardLayout。我在需要时添加一个面板,在完成编辑后将其删除。
最佳答案
尽量避免更换视图组件。最初,创建尽可能多的DetailPanel
并更新ListSelectionListener
中的组件models。将CardLayout
用作每个DetailPanel
的可变部分。创建视图不太可能对性能产生明显的影响。 profile看。如果您发现构建模型引入了显着的延迟,请考虑SwingWorker
,图示为here和here。