【问题标题】:JPanel Single Class vs. Primary + Secondary ClassJPanel Single Class vs. Primary + Secondary Class
【发布时间】: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。

标签: java swing jpanel


【解决方案1】:

如果完全不同,请将它们放在两个不同的类中,这样如果其他人查看您的代码,他们就会更好地理解发生了什么。

【讨论】:

    猜你喜欢
    • 2013-11-08
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 2011-11-30
    • 2021-08-31
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    相关资源
    最近更新 更多