我正在阅读两种创建 JFrame 的方法,而且我没有明确表示更好或差异:
import java.awt.*;
import javax.swing.*;
public class MyFramePanel {
public static void main(String[] args) {
JFrame myFrame = new JFrame("MyFramePanel");
....
我在一些书中找到了这个:
import java.awt.*;
import javax.swing.*;
public class ButtonFrame **extends JFrame**{
public ButtonFrame() {
super("Button Frame");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
...
setVisible(true);
}
public static void main(String[] args) {
ButtonFrame bf = new ButtonFrame();
}
}
我将使用第一个 - 在Stackoverflow中找到它 - 但我想知道为什么我正在阅读的关于Java的大部分书都使用了“扩展JFrame”。
非常感谢你,如果我的问题很愚蠢,我很抱歉打扰你。
答案 0 :(得分:6)
第一个是一个不错的选择。想想Composition over Inheritance。
支持组合优于继承是一种设计原则,它为设计提供了更高的灵活性,从长远来看,提供了业务领域类和更稳定的业务领域。
如果您未能在MyFramePanel
内使用JFrame
,而是使用Applet
,则可以更轻松地切换并更好地维护术语