我知道Swing被认为是轻量级的,因为它是完全用Java实现的,而无需调用本机操作系统来绘制图形用户界面组件。

另一方面,AWT(抽象窗口工具箱)是重量级的工具箱,因为它仅调用操作系统以产生其GUI组件。

但是我听说Swing仍然基于AWT,甚至Swing组件也必须至少有一个重量级的容器。换句话说,JFrame,JApplet不是轻量级的,是真的吗?
找出你的原因?

最佳答案

JFrame是重量级的,因为要在大多数OS中创建任务视图级窗口,而又不创建“大量” AWT窗口是不可能的。轻量级的组件可以用不需要JNI调用的基于Java的东西替换内部小部件,但是windows是特例。不过,JFrame确实允许您执行自定义渲染。另外,如果您正在使用其他轻量级的东西,那么我建议您也使用JFrame,因为它使渲染比混合轻量和重量的组件总体上更有效。

10-08 07:04