java - 寻找有关在 Java/Swing 中检查图像观察者的所有位的信息

标签 java swing macos

我在尝试使用 ToolKit 类加载一些图像时遇到问题,这是这样完成的:

  Toolkit tk = Toolkit.getDefaultToolkit();

  Image image = tk.createImage(imageFile.getPath());

但是当我稍后尝试将这些图像绘制到我的 Canvas (位于 JFrames 内)时,它通常只会在 Canvas 上绘制一些图像,但不会引发异常。经过大量调查后,我相当确信图像在绘制时尚未完成加载,但我无法验证这一点。我在文档中读到有一个名为 ImageOberserver 的类,如果您检查其名为 Allbit 的属性,这将告诉您对象是否已完全加载,但我没有找到如何执行此操作的好示例或任何描述此的好文档过程。

此外,我发现在我的 mac 上运行它时返回的工具包是 apple.awt.CToolKit,但我也找不到关于此类的文档。有谁知道当您运行 createImage 方法时 CtoolKit 是否创建了一个新线程?有谁知道我在哪里可以找到这门课的文档?

最佳答案

图像以增量方式加载,并且可以是动画的。通常,您可以只使用 javax.swing.ImageIconjava.awt.MediaTracker 是确保图像已完成加载的传统途径。

关于java - 寻找有关在 Java/Swing 中检查图像观察者的所有位的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099040/

相关文章:

bash - 使用 sed 删除标点符号和制表符

java - 如何使用 Java 在 OS X 上的扩展文件属性中存储散列?

java - 如何通过保存文件布局将不同语言的属性值以其 native 形式写入java中的属性文件?

java - 在 Oracle 中将 DB 数据与 Java 字符串进行比较是否安全?

用于绘制图像的 Java Graphics2D 方法,其中使用像素 alpha 值,但颜色值替换为给定颜色

java - JButton 上的阴影/重复文本

java - 为什么我的横幅没有出现在 Linearlayout 中?

java - 如何提高使用 JAXBContext.newInstance 操作的应用程序的性能?

java - Sprite 在特定的 JPanel 上生成

objective-c - CoreAnimation : warning, 删除了未提交 CATransaction 的线程;