2

javax.swing当我在 Java 中创建 GUI 时,我一直使用它。要制作一个窗口,我所要做的就是写:

JFrame frame = new JFrame("Cool Application");

我很好奇——javax.swing.JFrame实际上是如何制作一个框架的,它是如何保持操作系统独立的?我可以自己创建一个框架而不使用JFrame吗?

4

2 回答 2

3

窗口创建被委托回 JVM 的本机操作系统实现。该类Window负责创建和维护对本机对等点(AKA 对等点)的引用。

实际上Window委托protectedcreateWindow. _ Toolkit它的默认实例是从JVM 首次启动时设置的System属性初始化的。awt.toolkit

对于你的第二个问题,我想通过使用 JNI/JNA 是可能的,但我怀疑你是否真的能够添加任何东西,因为这幅画是由 Java 自己管理的。

于 2013-08-09T06:27:58.443 回答
2

我很好奇 - javax.swing.JFrame 实际上是如何制作框架的,它是如何设法保持操作系统独立的?

Java 中的 GUI(对所有 PL 都有效)是在 Native OS 中实现的对等体上创建的,有关详细信息的更多描述可在Windowing 系统中查看

我是否可以在不使用 JFrame 的情况下自己创建框架?

没有 JVM 就无法创建 Java 顶级容器

于 2013-08-09T06:35:00.680 回答