有人能给我解释一下Swing和AWT的区别吗?

在某些情况下,AWT比swing更有用/更被建议使用,或者反之亦然?


当前回答

AWT和Swing之间的这种差异导致了几个后果。

AWT is a thin layer of code on top of the OS, whereas Swing is much larger. Swing also has very much richer functionality. Using AWT, you have to implement a lot of things yourself, while Swing has them built in. For GUI-intensive work, AWT feels very primitive to work with compared to Swing. Because Swing implements GUI functionality itself rather than relying on the host OS, it can offer a richer environment on all platforms Java runs on. AWT is more limited in supplying the same functionality on all platforms because not all platforms implement the same-looking controls in the same ways.

Swing组件被称为“轻量级”,因为它们不需要 来实现它们的功能。JDialog和JFrame是 重量级的,因为他们有对手。比如JButton, JTextArea等是轻量级的,因为它们没有操作系统对等体。

对等体是操作系统提供的小部件,例如 按钮对象或输入字段对象。

其他回答

Swing组件提供了非常灵活的用户界面,因为它 遵循模型视图控制器(mvc)。 Awt不是基于MVC的。 Swing工作更快。 Awt的工作速度并不快。 摆动部件重量轻。 Awt组件重量很重。 Swing占用较少的内存空间。 Awt占用较多内存空间。 Swing组件是平台独立的。 Awt依赖于平台。 Swing require javax。摇摆不定的包。 Awt需要javax。awt包。

至于什么时候AWT可能比Swing -更有用

you may be targeting an older JVM or platform that doesn't support Swing. This used to really come into play if you were building Applets - you wanted to target the lowest common denominator so people wouldn't have to install a newer Java plugin. I'm not sure what the current most widely installed version of the Java plugin is - this may be different today. some people prefer the native look of AWT over Swing's 'not quite there' platform skins. (There are better 3rd party native looking skins than Swing's implementations BTW) Lots of people preferred using AWT's FileDialog over Swing's FileChooser because it gave the platform file dialog most people were used to rather than the 'weird' custom Swing one.

The base difference that which already everyone mentioned is that one is heavy weight and other is light weight. Let me explain, basically what the term heavy weight means is that when you're using the awt components the native code used for getting the view component is generated by the Operating System, thats why it the look and feel changes from OS to OS. Where as in swing components its the responsibility of JVM to generate the view for the components. Another statement which i saw is that swing is MVC based and awt is not.

摇摆不定:

Swing是java基础类的一部分。 Swing组件是独立于平台的。 Swing组件是轻量级组件,因为Swing位于awt的顶部。

AWT:

AWT被称为抽象窗口工具。 AWT组件是平台相关的。 AWT组件是重量级组件。

AWT 1。AWT占用更多的内存空间 2。AWT依赖于平台 3.AWT需要javax。awt包

波动 1。Swing占用较少的内存空间 2。Swing组件是平台独立的 3.Swing需要javax。摇摆不定的包