我曾经习惯用netbeans拖放做java swing编程,从来没有真正关心它生成的代码。现在我正在学习编写GUI而不拖放。
我遇到的根本问题是,我是否要制作IS_A
JFrame或HAS_A
JFrame的窗口。即是否使用遗传或组合。
如果MyWindow是JFrame
public class MyWindow extends JFrame{
}
如果MyWindow有一个JFrame
public class MyWindow{
private JFrame frame;
}
对我而言似乎都很好。但我想应该有正确的方法从这两个中做到这一点。什么是正确的方法,为什么?
答案 0 :(得分:0)
如果你希望你的类表现为一个窗口,那么你应该从JFrame扩展它(至少在我看来)。据我所知,这就是你应该如何去做的。
另一方面,如果您想要一个可以访问窗口的类,那么您将使用第二个选项。话虽这么说,你仍然需要初始化一个从JFrame扩展的类。
编辑:问题的答案确实说明了,但它也说它取决于你所追求的。如果我正确理解答案(也许其他人可以对此进行评论),如果你有一个场景需要一个框架来打印一个表到一个表,你可以有一个extends
框架并提供一个实用工具的类接收列表并将其打印到表格的方法。然后,您的逻辑将实例化此类而不是实际的JFrame,并使用它来显示数据。
我的方法是,通常,我有一个扩展JFrame的类,并提供一系列方法,使打印数据变得容易。然后我会有另一个类,它链接逻辑和视图层。该类将引用JFrame扩展类。