java - Java 是如何制作它的窗口的?

标签 java user-interface standard-library

JVM 如何使它成为 Windows,我知道它有它的 jar 文件和可执行文件等... 我想知道的是,一个窗口究竟是如何用 java 制作的,它是围绕桌面应用程序的框架。

它是安装它的机器上的图形库标准吗?

最佳答案

Java 中有两种类型的 UI 组件:重量级和轻量级。

重量级组件是操作系统中存在的东西的包装器。 Windows作为操作系统有创建窗口、对话框等的方法。

轻量级组件完全在应用程序中使用 2D 绘图 API 等创建。操作系统对此一无所知。

两个“官方”Java GUI API 是 Swing 和 AWT。 AWT 通常由 applet(无论如何都是早期的)使用。它由重量级组件组成。 Swing 建立在 AWT 之上,但它是一个更为广泛的 API,通常用于设计桌面应用程序。大多数 Swing 组件都是轻量级的。

因此,Java 桌面应用程序可能由一个或多个重量级组件组成,可能还包含一些轻量级组件。或者,如果 2D 绘图 API 足以“伪造”Windows 而无需重量级组件,则它可能都是轻量级组件。

你在 Java 应用程序周围看到的框架可能是用像 Java2D 这样的库绘制的(直接或通过使用该 API 或类似 API 的组件),或者它可能是由 Windows 使用应用程序的配置创建的,可能受操作系统的主题和显示设置。

现在大多数 Java 应用程序都是轻量级的。

关于java - Java 是如何制作它的窗口的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314998/

相关文章:

C#:如何将完整的 ContextMenu 添加到 MenuItem 作为子菜单

haskell - 浏览前奏的源代码会产生怪异

c - 为什么我的系统中有这么多版本的头文件?

java - 在计算日期时依赖毫秒是否安全?

java - 如何在Java中组织数据

android - 设置 Android 对话框位置

c++ - QtT 如何在 QMainWindow 中更改中央小部件时保存数据/状态

c++ - 为什么 std::map 不提供 key_iterator 和 value_iterator?

java - 在多模块maven项目中查找 Unresolved maven依赖项

java - NoSuchBeanDefinitionException : No qualifying bean of type 'int'