And*_*son 34
有一些很好的答案,但我想介绍一个略有不同的方面.Swing提供的功能超越了AWT.
Swing 在其他方面使用HTML 支持在JEditorPane&JTextPane和有限范围内的样式文档JComponents.AWT不支持任何组件中的样式文档.
AWT不提供基于树的结构JTree,没有表格结构,如JTable没有版本JToolBar.
JColorChooser对于简单的实用程序类,AWT没有等效(我可以找到或回忆)for 和none JOptionPane.

如评论中所述,请参阅包中的20多个额外/备用侦听器javax.swing.event.
可以在运行时将Swing组件设置为特定的外观,包括本机PLAF.

除了过多的AWT布局外,Swing还提供:
BoxLayoutGroupLayoutOverlayLayoutScrollPaneLayoutSpringLayoutViewportLayoutUndoManager 用于可编辑文档中的撤消/重做功能.SwingWorker 用于响应式GUI.在这个简短的描述中可能还有很多我错过了,但最重要的是,Swing是一个更新,更实现的GUI工具包.
Swing都依赖于AWT中的类,并且在很大程度上依赖于它们.
Java的Swing采用ActionListeners,它是AWT包的一部分.如果你想使用swing,你必须使用某种形式的AWT ActionListener.这就是事情的方式.我不建议使用Java来复杂的guis,但我也不会说AWT已经过时了,因为没有直接的替代品.因此,请继续使用AWT.
作为替代方案,您可以查看JOGL,但如果您正在尝试创建面向游戏的东西,那就更多了.