【问题标题】:Can I apply a Swing look and feel to AWT widgets?我可以将 Swing 外观应用到 AWT 小部件吗?
【发布时间】:2015-10-03 03:27:27
【问题描述】:

我正在开发一个混合了 Swing 和 AWT 控件的遗留 Java 桌面应用程序。当然,我可以成功地将系统外观应用到 Swing 控件,但是我可以对 AWT 做同样的事情吗?如果没有,我可以以任何方式实现一些桥接吗?

【问题讨论】:

  • 没有。 AWT 组件是直接从操作系统派生外观和感觉的本地组件
  • 您是说 AWT 使用本机操作系统小部件吗?如果是这样,它们肯定看起来不是(在 Linux 和 Windows 上似乎都是类似 Motif 的主题)。
  • 我不能 100% 确定 AWT 从哪里绘制它们(来自它自己的 API 或操作系统),但它们是本机小部件,就像系统中所有其他“正常”控件一样(它们有自己的窗把手)。这也意味着他们控制着自己的绘画,与其他一切分开
  • 好的,我明白了。如果您有任何参考,您可以创建一个答案。
  • 好吧,这可能有点听人说,但是The Story Of Awt“Java 的 GuiToolkit 必须使用宿主窗口系统提供的本机小部件,无论是 Windows、Motif 还是 Mac . 模仿 Java 的外观还不够好;它必须是真正的本地组件。” - 现在请记住,这可能是使用特定的绑定到特定的库,这些库尚未更新到较新的“wiz-bang”小部件库

标签: java swing awt look-and-feel


【解决方案1】:

基本答案是“不”。 AWT 组件由本地操作系统组件支持,直接(通过操作系统提供的库)或间接(通过基于 AWT 的本地组件)。 AWT 可能会链接到“较旧的”组件库,因此某些组件将与当前操作系统的“外观”不匹配,后者将使用较新的组件库。

在任何一种情况下,您都无法影响这些组件的外观(当然也不能通过 Swing 的 Look and Feel API)。

好吧,这可能有点听人说,但The Story Of Awt“Java 的 GuiToolkit 必须使用主机窗口系统提供的本机小部件,无论是 Windows、Motif 还是 Mac。模仿外观- Java 中的 and-feel 还不够好;它必须是真正的原生组件。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多