Java 基本MVC模式和GUI

Java 基本MVC模式和GUI,java,swing,model-view-controller,user-interface,jcomponent,Java,Swing,Model View Controller,User Interface,Jcomponent,我想要求小费。如果您有一个JFrame和许多JPanel,这些JPanel有十个JTextFields标签和一个编辑按钮,您将如何构造应用程序 您是将所有代码放在JFrame中,还是从JPanel扩展并将所有代码都包含在JFrame中 按钮呢?我想使用MVC模式,您将如何处理actionlisteners?他们每个人都是自己的控制器,还是你会对所有人只使用一个控制器?我认为这首先是一个风格和个人偏好的问题。它还取决于应用程序应该做什么以及如何做 如果您的JPanel在某种程度上非常相似,那么从J

我想要求小费。如果您有一个JFrame和许多JPanel,这些JPanel有十个JTextFields标签和一个编辑按钮,您将如何构造应用程序

您是将所有代码放在JFrame中,还是从JPanel扩展并将所有代码都包含在JFrame中


按钮呢?我想使用MVC模式,您将如何处理actionlisteners?他们每个人都是自己的控制器,还是你会对所有人只使用一个控制器?

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

如果您的JPanel在某种程度上非常相似,那么从JPanel扩展可能是有意义的。例如,如果每个面板都有10个按钮,其中按钮1始终对其相应的模型对象执行xyz()操作(尤其是当此对象对1 JPanel的所有按钮都相同时),而按钮2执行abc()

如果JPanel没有以这种方式进行强关联,我会将代码放在JFrame中,或者放在第三个对象中,从外部设置整个GUI

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


也就是说,最好从一个简单的方法(YAGNI)开始,从JFrame/third对象开始,使用一个actionlistener,然后在您觉得拆分可以提供更干净或更灵活的设计时进行重构

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

如果您的JPanel在某种程度上非常相似,那么从JPanel扩展可能是有意义的。例如,如果每个面板都有10个按钮,其中按钮1始终对其相应的模型对象执行xyz()操作(尤其是当此对象对1 JPanel的所有按钮都相同时),而按钮2执行abc()

如果JPanel没有以这种方式进行强关联,我会将代码放在JFrame中,或者放在第三个对象中,从外部设置整个GUI

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

也就是说,最好从一个简单的方法(YAGNI)开始,从JFrame/third对象开始,使用一个actionlistener,然后在您觉得拆分可以提供更干净或更灵活的设计时进行重构

再看这个,再看这个。