gpt4 book ai didi

java - 我应该担心使用 AWTUtilities.setWindowShape() 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 02:54:58 30 4
gpt4 key购买 nike

我在我的应用程序中使用 AWTUtilities 类来创建自定义窗口形状。据我所知,没有其他方法可以做到这一点。这是一个要求。

javadoc 生成给我这个错误:

warning: com.sun.awt.AWTUtilities is Sun proprietary API and may be removed in a future release

这到底是什么意思?我可以使用它,但它可能会停止使用任何版本?那为什么要放进去?更重要的是,这里真正的问题是,如果 Sun 将其移除,他们是否可能会用另一种方式代替它来做同样的事情?这是警告的目的吗?

我想我可以在调用代码之前检查 AWTUtilities 类是否存在。但如果我不需要这样做,那就太令人讨厌了。

有没有人有类似类(class)的经验?他们最终是否被 API 接受并且警告被删除或替换为另一种方法来做同样的事情?我需要担心这个吗?

仅供引用,我已阅读此内容:

How to distribute AWTUtilities

最佳答案

神谕 documentation状态:

Note: the com.sun.awt.AWTUtilities class is not part of an officially supported API and appears as an implementation detail. The API is only meant for limited use outside of the core platform. It may change drastically between update releases, and it may even be removed or be moved in some other packages or classes. The class should be used via Java Reflection. Supported and public API will appear in the next major JDK release.

JDK 7 已经推出很长时间了,所以可能需要一段时间。您是否应该使用它是一个风险管理问题,只有您的公司才能回答。如果我们谈论的是可以保证部署的 JRE 的内部应用程序,那么您不会有问题,因为您可以保证兼容的 JRE。如果我们谈论的是部署到外部客户,那么如果这个临时 API 发生变化,您需要有一个支持计划。

执行此操作的稳定方法是根据此 snippet 在 SWT 中创建一个 Shell然后使用 SWT_AWT 桥获取要在您的应用程序中使用的框架:

java.awt.Frame frame = SWT_AWT.new_Frame(shell);

如果您只是部署到单个平台(如 Windows),则只需将一个 SWT jar 加上 native 库即可。如果您的目标是多个平台,那么这会很痛苦。

因此有两个选择:处理 AWTUtilities 风险或使用 SWT_AWT 桥。

编辑:

一段时间过去了,Java 7 已经发布了。在 Java Tutorials 中有官方支持的方式来完成此操作的文档。 .底部的“How to Implement a Shaped Window”部分给出了一个例子。这当然假设您可以强制使用 Java 7

关于java - 我应该担心使用 AWTUtilities.setWindowShape() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3399998/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com