Swing和AWT混合不好,但还是做了,为什么呢?(Swing and AWT Mixing is

2019-06-27 04:57发布

我注意到,人们建议不要混用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;

那么,为什么许多包括Java(因为我得到了了他们的教程在这里 )仍然使用AWT进口,虽然我看到它主要用于Listener秒。

你如何添加本地的Swing Listener S /库的东西一样KeyButtonJComboBox压/ slections等?

或者,我会用firePropertyChangeListeners() (尽管这涉及到Java Bean)的

据现在我困惑了一段时间,我的大多数应用程序有Swing和AWT这被认为是坏?

Answer 1:

秋千股相当多的班,AWT,并使用一些相同的执行 - 注意javax.swing.JComponent中(基Swing组件类),实际上是从java.awt.Component中(基AWT容器类)继承

这其实不是太大的问题,如果你细心混合Swing和AWT。 其主要缺陷是:

  • 你可能会得到一个非常不同的外观,如果你混合AWT和Swing UI组件的感觉
  • Swing组件是“轻量级”(被Java渲染),而AWT组件是“重量级”(如在主机平台组件实现) - 这意味着,如果你把AWT组件Swing组件(倒过来是罚款)里面,你会遇到问题


Answer 2:

Swing是建立在AWT之上,用于创建和绘图用户界面组件不同的哲学。 从两个框架混合UI组件可能会导致意想不到的结果,并/因而气馁(如克列奥帕特拉状态,这已被固定)。 然而 ,摆仍使用AWT事件队列范例,包括监听器-它不与本地的Swing,因为没有理由听众替换它们。

同时使用Swing和AWT为您的应用程序通常的做法是,你被警告不要同时使用Swing和AWT UI组件。



Answer 3:

也许有人会在未来看到这一点,仍然觉得它有用。 有一个列表 AWT组件和它们的Swing替代是什么。



文章来源: Swing and AWT Mixing is bad, but still done, why?