我将 CardLayout 与 MVC 结合使用,并尝试了解何时应该创建 CardLayout 使用的面板。
例如:
当我在 ListPanel 上选择 DataItem 时,将显示用于查看和编辑 DataItem 详细信息的 DetailPanel。 我应该在选择 DataItem 时创建并显示 DetailPanel,还是应该在应用程序开始时创建 DetailPanel,然后在选择 DataItem 时调用加载方法,然后显示 DetailPanel?
目前我像堆栈一样使用 CardLayout。我在需要时添加面板,并在完成编辑后将其删除。
最佳答案
尽量避免替换 View 组件。首先,创建尽可能多的 DetailPanel
并更新组件 models在您的 ListSelectionListener
中。将 CardLayout
用于每个 DetailPanel
的可变部分。创建 View 不太可能对性能产生明显的影响; profile查看。如果您发现构建模型会带来显着的延迟,请考虑 SwingWorker
,如图 here 所示。和 here .
关于java - 何时为 CardLayout 创建面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15895621/