【问题标题】:How does Java's Swing framework make windows / frames? [closed]Java的Swing框架是如何制作窗口/框架的? [关闭]
【发布时间】:2013-08-11 01:19:57
【问题描述】:
当我在 Java 中创建 GUI 时,我一直使用 javax.swing。要制作一个窗口,我所要做的就是写:
JFrame frame = new JFrame("Cool Application");
我很好奇 - javax.swing.JFrame 实际上是如何制作框架的,它是如何保持独立于操作系统的?不使用JFrame,我可以自己创建一个框架吗?
【问题讨论】:
标签:
java
swing
user-interface
window
jframe
【解决方案1】:
窗口创建被委托给 JVM 的本机操作系统实现。 Window 类负责创建和维护对本机对等点(AKA 对等点)的引用。
Window 实际上委托给Toolkit 的createWindow 方法protected。它的默认实例是从System属性awt.toolkit初始化的,这是JVM在首次启动时设置的
对于你的第二个问题,我想通过使用 JNI/JNA 是可能的,但我怀疑你是否真的能够添加任何东西,因为绘画是由 Java 它自己管理的。
【解决方案2】:
我很好奇 - javax.swing.JFrame 实际上是如何制作框架的,以及
它是如何保持独立于操作系统的?
Java 中的 GUI(对所有 PL 都有效)是在 Native OS 中实现的对等体上创建的,有关详细信息的更多描述请参阅Windowing system
我是否可以自己创建一个框架而不使用
框架?
不能在没有 JVM 的情况下创建 Java 顶级容器