一尘不染

Java扩展JFrame与在程序内部创建它

java

使用Swing制作应用程序时,我已经看到人们做两件事之一来创建JFrame。哪种方法更好,为什么呢?

我是Java和编程的初学者。我唯一的学习资源是书籍,YouTube和Stack Overflow。

import {imports};

public class GuiApp1 {

    public static void main(String[] args) {

        new GuiApp1();
    }

    public GuiApp1()  {
        JFrame guiFrame = new JFrame();

        guiFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        guiFrame.setTitle("Example GUI");
        guiFrame.setSize(300,250);
        ................
    }

import {imports};

public class GuiApp1 extends JFrame {

    public Execute() {
        getContentPane().setBackground(Color.WHITE);
        getContentPane().setLayout(null);
        setSize(800, 600);
        .............
    }

    public static void main(String[] args) {
        Execute frame1 = new Execute();
        frame1.setVisible(true);

    }
}

阅读 498

收藏
2020-02-29

共1个答案

一尘不染

  • 避免扩展JFrame,因为它将JGUI与你的GUI联系在一起。相反,如果你专注于创建JPanels,那么你可以自由地在需要的任何地方使用这些JPanels-在JFrame,JDialog,JApplet或另一个JPanel内部,或通过CardLayout与其他JPanels交换。
  • 通常避免继承,尤其是复杂类的继承。这将防止有害的错误,例如无意中的方法重写(尝试创建具有getX() and getY()方法的JFrame或JPanel,以了解我的意思!)。
  • 如果使用的是IDE,请避免继承复杂的类:如果重写复杂的类,则在对这些类的对象调用方法时,将为你提供太多,太多的方法选择。
  • 封装是好的,并且可以创建更安全的代码。仅暴露那些需要暴露的东西,并尽可能控制该暴露。
2020-02-29