没有AWT的Java GUI监听器

Hid*_*dde 79 java layout swing awt listener

我是一名刚开始的Java开发人员,只是从互联网教程中学习.我正在学习全屏GUI应用程序.我昨天被告知我不应该在我的程序中使用AWT,因为它已经过时了.我已经知道轻量级和重量级组件,主要问题是鼠标和键盘监听器.为什么AWT过时了?如何在没有AWT的情况下制作程序(将监听器添加到JComponents等)(什么样的Swing东西可以取代AWT)?

Hov*_*els 43

你错误地解释了给你的信息.您应该避免将Swing组件与AWT 组件一起使用.将Swing与AWT监听器结构,布局管理器等一起使用是可以的,事实上它是不可能的.


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还提供:

  1. BoxLayout
  2. GroupLayout
  3. OverlayLayout
  4. ScrollPaneLayout
  5. SpringLayout
  6. ViewportLayout

其他


在这个简短的描述中可能还有很多我错过了,但最重要的是,Swing是一个更新,更实现的GUI工具包.

Swing都依赖于AWT中的类,并且在很大程度上依赖于它们.


Mir*_*ate 7

Java的Swing采用ActionListeners,它是AWT包的一部分.如果你想使用swing,你必须使用某种形式的AWT ActionListener.这就是事情的方式.我不建议使用Java来复杂的guis,但我也不会说AWT已经过时了,因为没有直接的替代品.因此,请继续使用AWT.

作为替代方案,您可以查看JOGL,但如果您正在尝试创建面向游戏的东西,那就更多了.