如果我只有一个组件,在JFrame中使用AWT是否安全?

时间:2012-05-15 16:03:49

标签: java swing awt

我听过很多次不要混用SwingAWT(重量级和轻量级)组件。

但是,如果我只有一个组件在JFrame上显示一个组件,那该怎么办呢?到目前为止,我看到的主要内容是AWT组件总是在顶部,但正如我之前所说,如果我只在JFrame上有一个组件什么是重要的?

编辑:我需要做的就是使用AWT Canvas进行绘画。我在游戏中使用它,所以我需要一个BufferStrategy

所以我想我的问题是:即使您只在AWT上同时显示一个组件,是否还有令人信服的理由不混合SwingJFrame组件?

,我已经让它在Canvas只有一个JFrame就可以正常工作了,那么迁移到Swing有什么好处?

提前感谢: - )

3 个答案:

答案 0 :(得分:4)

  • 你必须使用AWT组件进行高性能绘画,多媒体或从OpenGL,CAD / CAM e.i中导出图形。

  • 只有当你有非常重要的理由时,你才可以将AWT组件与Swing JComponents一起使用,例如来自Swing的点或事件是BugParade中的bug或常规错误

  • 我建议不要将AWT与Swing混合,反之亦然

  • AWT组件的优势,它们基于来自Native OS的资源

  • AWT组件的缺点,他们的发展在上个世纪结束了

  • Swing基于或继承了AWT组件及其方法

答案 1 :(得分:3)

  

.. JPanelCanvas的最佳Swing替代品吗?

是的,但覆盖paintComponent(Graphics)而不是paint(Graphics)

答案 2 :(得分:2)

与大多数决定一样,这对您来说至关重要。混合AWT和Swing有性能上的缺点,如果你试图使用主题,你也会遇到问题。话虽这么说,如果你需要它,没有理由不这样做。

Swing是建立在AWT之上的,是的,它更新,更快,更好,但它仍然可以访问AWT所拥有的一切。

这里真正的问题应该是如果有办法在不使用AWT的情况下做你需要做的事情?给我们一些关于你需要做什么的指示,也许有办法用Swing来做。