JFrame和Frame有何区别
现在J开头的类用的好像比较多,有什么优势吗

解决方案 »

  1.   

    Frame是属于java.awt.Frame下的
    JFrame属于javax.swing.JFrame,也继承于Frame,属于java.awt.Frame的扩展版本,增加了很多特性
    JFrame 类与 Frame 轻微不兼容。与其他所有 JFC/Swing 顶层容器一样,JFrame 包含一个 JRootPane 作为其唯一的子容器。根据规定,根窗格所提供的内容窗格应该包含 JFrame 所显示的所有非菜单组件。这不同于 AWT Frame。为了方便地使用 add 及其变体,已经重写了 remove 和 setLayout,以在必要时将其转发到 contentPane。这意味着可以编写:        frame.add(child);
     子级将被添加到 contentPane。内容窗格始终是非 null 的。试图将其设置为 null 会导致 JFrame 抛出异常。默认的内容窗格上会设置有 BorderLayout 管理器。有关添加、移除和设置 JFrame 的 LayoutManager 的详细信息,请参阅 RootPaneContainer。 
    与 Frame 不同,当用户试图关闭窗口时,JFrame 知道如何进行响应。用户关闭窗口时,默认的行为只是简单地隐藏 JFrame。要更改默认的行为,可调用方法 setDefaultCloseOperation(int)。要使 JFrame 的行为与 Frame 实例相同,请使用 setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE)。 有关内容窗格和根窗格提供的其他功能的更多信息,请参阅 The Java Tutorial 中的 Using Top-Level Containers 一节。 在多屏幕环境中,可以在不同的屏幕设备上创建一个 JFrame。有关更多信息,请参阅 Frame。 警告:Swing 不是线程安全的。有关更多信息,请参阅 Swing's Threading Policy。 警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参阅 XMLEncoder。
      

  2.   

    JFrame是Swing里面的,
    Frame是AWT里面的。
    AWT终究是要退出市场的,学学Swing可以。
    最近初学GUI,感觉很麻烦哪,呵呵
      

  3.   

    http://topic.csdn.net/t/20031226/12/2605580.html
    以前有人问的JFrame是swing中的组件SDK1.3以后才有,适合跨平台
      

  4.   

    恩,看见书上说,swing是纯java语言的,适合跨平台!
      

  5.   

    swing更轻量。用的都是observer模式设计。