Java 关于Swing组件的一般问题

Java 关于Swing组件的一般问题,java,user-interface,swing,Java,User Interface,Swing,我想知道swing组件本身是如何制作的。JComboBox似乎是由一个JButton组成的,当您单击它时,它下面会显示一个JList。这是组件制作的一般方式。组件本身是否由较小的组件组成?如果是这样,那么最小的组件实际上是如何创建的?像JLabel或JButton 这会让我联想到JLabel和JTextField类似于java中的int和double原语 谢谢您可以随时在上查找组件的来源,并查看组件是如何制作的。一些组件可能是使用其他组件制作的,或者是围绕旧的AWT组件构建的。但最终,所有GUI

我想知道swing组件本身是如何制作的。JComboBox似乎是由一个JButton组成的,当您单击它时,它下面会显示一个JList。这是组件制作的一般方式。组件本身是否由较小的组件组成?如果是这样,那么最小的组件实际上是如何创建的?像JLabel或JButton

这会让我联想到JLabel和JTextField类似于java中的int和double原语


谢谢

您可以随时在上查找组件的来源,并查看组件是如何制作的。

一些组件可能是使用其他组件制作的,或者是围绕旧的AWT组件构建的。但最终,所有GUI功能都必须基于VM中的某些平台相关功能,因此,例如在Windows中,如果您跟踪所有间接层,您最终将在某个时候归结为对的调用。

java中的第一个GUI工具包是AWT。
AWT通过调用本机库来显示GUI组件来提供其功能。
另一方面,Swing的组件(Swing是与Java2D一起引入的)与本机组件不对应。
Swing的组件使用Java2D绘制,允许程序员自定义绘图,以便应用程序具有程序员想要的外观。
这样做的好处之一是允许平台互操作性(因为它不需要检查哪些本机库可用于委托),并提供本机库中不存在的额外小部件