正确的方法来创建一个JFrame

JJF*_*JFS 0 java swing jframe

我正在阅读两种创建JFrame的方法,我并没有明确表示更好或不同:

import java.awt.*;
import javax.swing.*;

public class MyFramePanel {

    public static void main(String[] args) {

        JFrame myFrame = new JFrame("MyFramePanel");
....
Run Code Online (Sandbox Code Playgroud)

我在一些书中找到了这个:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

我将使用第一个 - 在Stackoverflow中找到它 - 但我想知道为什么我正在阅读的关于Java的大部分书都使用"扩展JFrame".

非常感谢你,如果我的问题很愚蠢,那就太烦了.

Mar*_*ler 6

第一个是一个不错的选择.考虑组合而不是继承.

支持组合优于继承是一种设计原则,它赋予设计更高的灵活性,从长远来看,提供业务领域类和更稳定的业务领域.

如果你不会使用你的MyFramePanel内部JFrame,而是在一个Applet,它更容易切换和更好地维护长期.