【问题标题】:AWT XOR SWING together in one application?AWT XOR SWING 在一个应用程序中一起使用?
【发布时间】:2011-04-16 08:53:45
【问题描述】:

我正在考虑为生物分析工具开发 Java GUI。我的问题是,我可以在同一个模型视图控制设计模式下同时使用 AWT 和 SWING 库吗?或者,它们是否以不同的方式控制了两个库?我想知道是否可以将它们放在同一个屋檐下,以重用用这两个库编写的现有代码。非常感谢您的宝贵时间。

【问题讨论】:

  • 哪个 MVC? MVC 的有趣之处在于有这么多不同的,你不知道从哪一个中选择:MVC type1、type2、HVMC / HPAC? HMVC 是我目前最喜欢的 :)
  • @SyntaxT3rr0r,尤其是作为强大的 MVC 指南/参考的书籍?我有先入为主的设计模式,但以我的学术背景,它读起来就像卡通片。

标签: java model-view-controller swing awt


【解决方案1】:

Swing 建立在 AWT 之上,您可以混合使用 Swing 和 AWT,它在技术上可以工作,但有一些限制:

  • 重量级与轻量级组件:AWT 中的组件是重量级的——它们对应于本机操作系统窗口。这意味着所有 AWT 组件都出现在同级 Swing 组件之上。 (比如把一个awt List和一个swing JList放在同一个容器里,List总是会出现在JList上面。)

  • 外观和感觉:AWT 组件的外观和感觉都是原生的,因为它们是原生组件。 Swing 组件具有可插入的外观和感觉,这定义了它们的外观和行为。如果您选择 L&F 来匹配原生平台,这些组件只是原生外观和感觉的“模仿”,其行为可能与它们的 AWT 对应物不同。 (例如 JButton 与 awt Button。)

由于这些原因,最好只使用一个 UI 库,大概是 Swing。

编辑:JDK 6(更新 12)提供了重量级和轻量级组件的无缝集成,因此混合可以无缝工作。所以第一点不再正确 - 但两个 UI 工具包之间的外观和感觉不一致仍然存在。

【讨论】:

    【解决方案2】:

    嗨是的,你可以同时使用。但是没有必要,更不建议将这两者混合使用。

    例如,您可能会遇到一些严重的问题,因为 AWT 没有“深度”概念。没有不同的层等。其他问题是,例如,这些框架的组件外观不同。

    编辑: 我很喜欢这个资源。继续阅读它,其中提到了所有问题,并附有说明性示例,当您将这两者混合使用时,您必须注意这些问题。 http://java.sun.com/products/jfc/tsc/articles/mixing/

    喂,波罗。

    【讨论】:

      猜你喜欢
      • 2014-02-12
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      相关资源
      最近更新 更多