- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我最近阅读了有关 Pushing Pixels 的博文,其中描述了如何使用纯 Java 实现 native 透明和半透明。所需的类驻留在 com.sun.awt 上,即 com.sun.awt.AWTUtilities。
我想知道如何将所需的类(不仅仅是这个)包含到我的发行版中,因为只有当您安装了 jdk 并通过那里启动 jvm 时,这些类才可用。所以我的程序的用户将没有运行我的程序所需的类。
有什么想法吗?
最佳答案
AWTUtilities,正如包所暗示的那样,是一个实现包,可能会发生变化。我认为从技术和法律的角度来分配类(class)不是一个好主意。
从技术上讲,com.sun.awt.AWTUtlities 必然对其他类和内部实现细节具有可能未知的依赖性,特定于 Java 6 u10 及更高版本 (the release in which it appeared)。这种未知的依赖性角度注定是站不住脚的,因为绘画和图形也需要对某些 native 实现进行更改。
其次,这必然会在 Java 7 中发生变化,因为唯一的版本 Sun 还没有发布支持透明性的 java.awt.AWTUtilities,因为除了主要版本外,他们没有对公共(public) API 进行更改.
IANAL,但我认为在没有经过律师的情况下参与重新分发软件的行为是不明智的。此外,客户不喜欢在他们的系统中部署不受支持的任何软件。
更新
从 6u10 开始的所有 Sun JRE(不仅仅是 JDK)都带有 com.sun.awt.AWTUtilities,因此最简单的做法是让您的用户在他们的系统上安装 Java 6u10 或更高版本,并为您的应用程序安装优雅地处理任何由此产生的异常。
关于java - 如何分发 AWTUtilities,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1416869/
我最近阅读了有关 Pushing Pixels 的博文,其中描述了如何使用纯 Java 实现 native 透明和半透明。所需的类驻留在 com.sun.awt 上,即 com.sun.awt.AWT
我有一个模态 JDialog,我通过调用 com.sun.awt.AWTUtilities 将其设置为非不透明的方法,setWindowOpaque(this, false)。 当我将模态 JDial
如果启用了 AWTUtilities,我会尝试使用它们,所以我会使用这些方法 import java.awt.*; import java.awt.event.ActionEvent; import
我正在尝试创建一个带有抗锯齿圆角的不透明JWindow。为此,我调用该方法: AWTUtilities.setWindowOpaque(this, false); 并使用自定义的JPanel来绘制实际
使用 this文章来自 sun。我正在尝试创建一个透明窗口。 我在框架的标签内有一张图片。我希望图像可见但框架不可见。 当我使用 try { Class awtUtilitiesClass =
我正在尝试在我的桌面应用程序中提供一个透明窗口。我遇到过 AWTUtilities 方法 setWindowOpacity(),但我无法在我的项目中使用它。 import com.sun.awt.AW
我在我的应用程序中使用 AWTUtilities 类来创建自定义窗口形状。据我所知,没有其他方法可以做到这一点。这是一个要求。 javadoc 生成给我这个错误: warning: com.sun.a
这个问题让我很困惑。基本上我正在开发一个使用透明形状窗口和自定义 Synth L&F 的多窗口应用程序。应用程序的某些部分从父框架调用 JFrame/JDialog 组件。在这些组件中,我有弹出菜单和
我是一名优秀的程序员,十分优秀!