JFrame 是如何实际创建的?

How is a JFrame actually created?

我很好奇 Java 实际上是如何在 swing 中创建 JFrame 的; window 是如何神奇地弹出的?因此,我继续查看 JFrame 的源代码,最后找到 Window class.

的源代码

在 Window class 中,发生了太多事情,我无法分辨显示 window 初始化时的提示。我是初学者,即使它真的很高级,我还是想看看制作 window.

的实际代码

也许我看错了东西。如果有人能给我指出正确的方向或提供链接,那就太好了。

编辑:

如果有人对我要问的问题感到困惑,假设您要创建一个 window 就像 JFrame 一样,但是从头开始,将如何完成? swing是怎么做到的?

Window(或更正式的 java.awt.Window)是平台原生工具包 window 的 Java API。所有现代 OSes(无论如何都支持显示)都带有一个工具包。

JFrame 和 Swing 是在 Java 中提供用户界面 (UI) 工具包的二次尝试,它们在多个 OS 中的外观和工作方式相同。 java.awt中的类像Frame和Dialog是第一次尝试,但是他们有原生的peer 类(见java.awt.peer - 编译 C/C++ 代码),并且在不同的 OSes 中呈现和执行非常不同。

那么在幕后发生的事情是 JFrame 首先从 OS 工具包中创建最基本的 window,然后对其进行修饰(添加菜单栏、滚动条、等)成为摆动中的 JFrame 或 JDialog Java 类 本身。