【发布时间】:2020-12-08 07:13:27
【问题描述】:
我目前有一个相当大的类来扩展 JPanel。这个类大约有 2000 行代码,尽管它被分解成许多主要是小函数。我想添加第二种模式,它将在面板中呈现完全不同的东西。对于组织,我正在考虑简单地将面板传递给另一个类并让另一个类呈现面板。或者我可以添加到第一堂课。最好的方法是什么?第二种方法唯一的缺点是主类必须检查它处于什么模式,如果它处于第二种模式,它必须将鼠标和键的移动传递给辅助类。
【问题讨论】:
-
考虑使用mvc pattern。有一个
Model类,其中包含视图 (gui) 所需的所有信息。有一个使用模型显示 gui 的View类。有一个控制模型和视图的Controller类。周围有很多examples。 -
谢谢,虽然每个案例的模型完全不同,视图也完全不同。所以我基本上需要 2 个模型、2 个视图和 1 个控制器。想象一下,在一种模式下,我想显示一些仪器/仪表,而在另一种模式下,我想显示乒乓球游戏——完全不同的应用程序,但我希望它们在不同时间显示在同一个面板中。我考虑过只使用 2 个 JPanel 并且一次只将 1 个添加到 JFrame 中。当我想更改模式时,取消注册一个面板,注册另一个。我再考虑一下。
-
考虑使用 CardLayout 将两个 JPanel 添加到 JFrame 并让控制器切换它们。
-
谢谢@c0der,明天我会调查的。我没听说过 CardLayout。