Dav*_*amp 13 java import swing awt event-listener
我注意到人们建议不要混合使用Swing和AWT Components,但是我们看到了很多:
import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
//AWT imports though only for listeners
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
Run Code Online (Sandbox Code Playgroud)
那么为什么包括Java在内的许多人(因为我在这里得到了他们的教程)仍然使用AWT导入,尽管我看到它主要用于Listeners.
你如何添加本地的Swing ListenerS /库的东西一样Key,Button,JComboBox按/ slections等?
或者我会用firePropertyChangeListeners()?(虽然这与Java Bean有关)
一段时间以来我一直很困惑,我的应用程序大部分都有Swing和AWT,据说这很糟糕?
Swing建立在AWT之上,具有创建和绘制UI组件的不同理念.混合来自两个框架的UI组件可能会导致意外结果,因此不鼓励(因为kleopatra声明,这已得到修复).但是,Swing仍然使用AWT事件队列范例,包括侦听器 - 它不会用Swing原生的侦听器替换它们,因为没有理由.
对于您的应用程序使用Swing和AWT是常见的做法,您所警告的是使用Swing和AWT UI组件.
Swing与AWT共享了不少类,并使用了一些相同的实现 - 请注意,javax.swing.JComponent(基本Swing组件类)实际上是从java.awt.Component(基本AWT容器类)继承的.
如果你小心的话,混合Swing和AWT实际上并不是一个问题.主要缺陷是: