“how can it be lightweight if it uses AWT and inherits the AWT container?”
轻量级意味着Swing组件没有自己的本机对等体,它共享一个(公共)本地对等体.这个本地对等体来自它添加到的AWT容器(通常是窗口),并在该容器层次结构中的所有Swing组件之间共享…
AWT提供“重”提升,连接到本机操作系统并提供通过其渲染Swing组件的核心通道.它还提供了许多本机集成,例如可以由Swing使用的SystemTray,Desktop和每像素半透明API
Why use Swing over AWT then….why not just use AWT?
这是一个观点问题,但通常,AWT被Swing取代,并提供了一个更灵活的图形API,可以从中开发.因为它不依赖于平台本机组件,所以它意味着您可以自由地开发所需的组件,并且可以在多个平台上运行.
Swing还借用了大部分AWT API,包括Event Queue
JTree和JTable将是我使用Swing over AWT的第一个论点;)
Would AWT slow the Swing components down?
并不是的. AWT已经使用DirectX和OpenGL管道已有一段时间了,因为它是本机API和Java API之间的转换层,所以它通常非常擅长它的功能.此外,没有AWT,你没有Swing ……