2012-11-13 29 views
1

我想问一个小费。如果你有一个带有许多JPanel的JFrame,它们有十个JTextFields标签和一个编辑按钮,你将如何构建你的应用程序。基本的MVC模式和GUI

你会把所有的代码放在JFrame中吗?或者你会从JPanel扩展到JFrame中吗?

按钮怎么样?我想使用MVC模式,你将如何处理actionlisteners?他们每个人都是自己的控制器吗?还是你们只使用一个控制器?

+0

另请参阅此[示例](http://stackoverflow.com/a/3072979/230513)。 – trashgod

回答

1

我认为这首先是一个风格和个人喜好的问题。这也取决于你的应用程序应该做什么以及如何做。

如果你的JPanels以某种方式非常相似,那么从JPanel扩展它可能是有意义的。例如,如果每个面板都有10个按钮,其中按钮1始终为其对应的模型对象执行xyz()操作(尤其是对于1个JPanel的所有按钮,此对象相同),并且按钮2执行abc()...

如果JPanels没有以这种方式强相关,我会将我的代码放在JFrame或第三个对象中,从外部设置整个GUI。

它与操作者相似。如果你有很少的动作,我可能会只用一个控制器对象来使用(不是很多文件)。如果您有很多不同的操作,我会将类似的操作分组到每个操作组的一个控制器对象中。

也就是说,最好从一个简单的方法开始(YAGNI),你可以从JFrame /第三个对象中完成所有事情,并且拥有一个actionlistener,然后在你感觉分割事物给你一个更清晰或更灵活的时候重构设计。