如何在操作系统内构建GUI。让我们使用两个例子,比如Ubuntu中的GTK +和Java JFrame。我认为使用某种图形用户界面的操作系统必须提供一些系统调用才能显示窗口。因此,例如,如果我在一台机器上安装了一个版本的Ubuntu,没有下载任何软件,我应该可以进行系统调用以显示一个窗口。虽然情况并非如此。我必须安装和下载GTK + SDK,它允许我创建带按钮等的窗口。那么我的问题是Java,那么Java如何构建它的JFrame?我知道有一个Java虚拟机在Linux系统上运行,但是Java虚拟机如何调用实际显示窗口?与GUI一起出现用户与它们交互的事件。在Java级别,JVM处理所有较低级别的调用,并且您获得OnClick()事件等.JVM如何实际调用并使用这些调用?与GDK +相同?我理解这是一个广泛的问题,有许多不同的答案,但任何帮助将不胜感激。
答案 0 :(得分:2)
我们以Linux为例。有几个层次:
在Windows上,内核,操作系统,窗口系统,桌面和小部件都捆绑在一起。在这种情况下,工具包可能不会绘制自己的小部件,而是直接从Windows中使用它们。
在任何情况下,该工具包都会使您的应用程序与特定于平台的详细信息隔离,并自动执行正确的操作。