我目前正在使用MVC模式将卡片游戏实现到java中,但我对视图有很多困难。事实上,我有很多模型类和很多视图(Observable模型的观察者),如“播放器”,“Deck”,“Card”,“Game”等...
为了拥有一个图形用户界面,我问我是否应该只使用一个JFrame(但在这种情况下,所有视图如何作用于同一个JFrame?)或创建多个JFrame,例如每个视图扩展JFrame?这是我第一次使用MVC模式,它对我来说仍然很模糊:/
答案 0 :(得分:1)
单帧就足够了。事实上,一个视图(Deck extends JPanel)可以包含多个另一个视图(Cards扩展JPanel),提供布局和委托给绘画和事件处理。
答案 1 :(得分:0)
Game,Player,Deck和Card是模型类。我假设一个游戏可以有一个或多个玩家,游戏可以有一个或多个套牌,而牌组可以有一张或多张牌。
您有一个JFrame,带有一个或多个JPanel,代表游戏表。游戏桌将在适当的时间显示玩家卡牌,并保持得分。
在Java Swing应用程序中,您可以通过以下方式实现模型/视图/控制器模式。
通常,不是一个控制器类。有许多小型控制器类可以处理视图的一部分和模型的一部分。
有关更完整的示例,请阅读我的2048 Game in Java Swing文章。它不是卡片,但你可以看到MVC片段如何组合在一起。