我将CardLayout与MVC结合使用,并尝试了解何时应创建CardLayout使用的面板。

例如:

当我在ListPanel上选择DataItem时,将显示一个DetailPanel,用于查看和编辑DataItem的详细信息。
我应该在选择DataItem时创建并显示DetailPanel,还是应该在我的应用程序开始时创建DetailPanel并在选择DataItem时仅调用加载方法,然后显示DetailPanel?

目前,我正在像堆叠一样使用CardLayout。我在需要时添加一个面板,在完成编辑后将其删除。

最佳答案

尽量避免更换视图组件。最初,创建尽可能多的DetailPanel并更新ListSelectionListener中的组件models。将CardLayout用作每个DetailPanel的可变部分。创建视图不太可能对性能产生明显的影响。 profile看。如果您发现构建模型引入了显着的延迟,请考虑SwingWorker,图示为herehere

10-06 09:13