2015-04-14 43 views
1

我被用来做NetBeans拖放的java swing编程,并且从来没有真正关心过它生成的代码。现在我正在学习编写图形用户界面程序,而不用拖拽。在swing图形用户界面中选择继承和组合

发生在我身上的根本问题是,我打算将窗口做成IS_A JFrame还是HAS_A JFrame。即是否使用继承或组合。

如果mywindow的是一个JFrame

public class MyWindow extends JFrame{ 

} 

如果mywindow的有一个JFrame

public class MyWindow{ 
    private JFrame frame; 
} 

两者似乎没什么问题。但我想应该有一个正确的方法来解决这两个问题。什么是正确的方式,为什么?

回答

0

如果你想让你的类表现为一个窗口,那么你应该从JFrame扩展它(至少在我看来)。据我所知,这是你应该如何去做的。

如果另一方面,你想要一个有权访问一个窗口的类,那么你会选择第二个选项。这就是说,你仍然需要初始化一个从JFrame扩展的类。

编辑:问题的答案确实说,但它也表示,这取决于你以后是什么。如果我正确地理解了答案(也许其他人可以对此进行评论),如果您有一个场景需要一个框架将列表打印到表格中,则可以使用框架并提供实用方法一个列表并将其打印到表格中。然后,您的逻辑将实例化此类而不是实际的JFrame并使用它来显示数据。

我的方法是通常我有一个扩展了JFrame的类,并提供了一系列使打印数据变得简单的方法。然后我会有另一个类,它链接逻辑层和视图层。该类将引用JFrame扩展类。

+0

@assylias指出的问题表明组成是优先考虑的。你对此有何想法? – DesirePRG

+0

@DesirePRG:我试图扩大我的答案。如果您有任何疑问,请告诉我。 – npinti