gpt4 book ai didi

java - 扩展 JFrame 与在程序中创建它

转载 作者:IT老高 更新时间:2023-10-28 21:13:57 25 4
gpt4 key购买 nike

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

我是 Java 和编程的初学者。我唯一的学习来源是书籍、YouTube 和 StackOverflow。

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);

}
}

最佳答案

想法:

  • 避免扩展 JFrame,因为它会将您的 GUI 与 JFrame 联系在一起。相反,如果您专注于创建 JPanel,那么您可以在任何需要的地方自由使用这些 JPanel - 在 JFrame、JDialog 或 JApplet 中,或在另一个 JPanel 内部,或通过 CardLayout 与其他 JPanel 交换。
  • 一般避免继承,尤其是复杂类。这将防止有害错误,例如无意的方法覆盖(尝试创建具有 getX()getY() 方法的 JFrame 或 JPanel 以了解我的意思!) .
  • 如果您使用 IDE,请避免继承复杂类:如果您重写一个复杂类,当您调用这些类的对象上的方法时,您将有太多太多的方法选择提供给您。
  • 封装很好,可以创建更安全的代码。只曝光需要曝光的部分,并尽可能控制曝光。

关于java - 扩展 JFrame 与在程序中创建它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22003802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com