如果我要制作单窗口Java程序,我发现自己做了类似下面的事情。请注意,我倾向于做类似iOS开发的事情。
+-------------------------------------------------------------------------------+
| |
| ExampleJFrame.java ExampleJPanel.java |
| | | |
| ExampleJFrameController.java -> ExampleJPanelController.java -> Component(s) |
| |
+-------------------------------------------------------------------------------+
我喜欢iOS标准,并希望遵循这一点。这是我能得到的最接近的。我的问题是,如果我使用JFrame
进行简单的操作,例如添加JPanel
,设置标题,位置,大小等,我应该(1)将JFrame
子类放在哪里我只有ExampleJFrame
并让对象自己做上述事情或者(2)我应该只有ExampleJFrameController
来创建一个新的JFrame
并设置它的标题和诸如此类的东西?
修改:
使用第二个选项,如果我想要子类ExampleJFrameController
,则父对象会将JFrame
的可见性设置为true
,然后子对象才能对其执行任何操作。所以也许我忘了添加一个选项3(“图形”有点隐含):同时包含ExampleJFrame
和ExampleJFrameController
。 ExampleJFrame would set its own size and location and title and
{ExampleJFrameController {1}} {ExampleJFrame {1}} {ExampleJPanel {1}} {ExampleJFrameController {1}} {ExampleJPanelController {1}} {ExampleJPanelController {1}} ExampleJPanel`?或者我错过了一些可以解决这个问题的细节?
答案 0 :(得分:2)
我认为选项2是最好的,因为您可以更轻松地管理它。此外,您还可以创建新的Controller,而无需创建全新的JFrame。这将保留内存,并使程序功能更有效。
答案 1 :(得分:2)
我会使用第二种选择。
分离Java代码可能看起来非常好而且整洁,但在设计Java对象时变得太复杂了。你最终会拥有数十个文件,可以很容易地在3或4中完成。
如果您使用第一个选项,每次要创建新的JFrame
时,最终都会创建一个新的控制器。使用第二个选项,您只需在现有控制器类中添加一个新对象。