在项目的上下文中,我必须使用MVC模式将卡片游戏实现到java中。目前游戏在控制台上运行良好,但我必须添加图形用户界面。我很清楚工作控制器和模型是怎样的,但我对这个观点有些困难。
你知道,我有很多模特课,比如" Player" "卡"等等。从Observable扩展。 因此,我想我应该有很多观点。但我的应用程序将在JFrame对象中进行,该对象将位于视图类中。
我的问题是:所有不同的视图类如何能够访问另一个视图类中包含的JFrame对象(例如,添加按钮等...)? (JFrame会出现在像GameObserver这样的类中)
答案 0 :(得分:-1)
独立于MVC,如果你只有一个主JFrame并且你从未创建另一个JFrame,那么使它成为Singleton并静态访问它可能是一个很好的解决方案,例如SingletonFrame.getInstance()
。
有很多种方法可以创建一个Singleton模式,这里有一个:
public class SingletonFrame extends JFrame {
private SingletonFrame() {
//your initialization code
}
private static class SingletonHolder {
public static final SingletonFrame instance = new SingletonFrame();
}
public static SingletonFrame getInstance() {
return SingletonHolder.instance;
}
}