【问题标题】:Java AWT - BufferedImage problems when using J2ME and J9Java AWT - 使用 J2ME 和 J9 时的 BufferedImage 问题
【发布时间】:2010-10-10 05:23:54
【问题描述】:

我正在尝试在 AWT 中使用 BufferedImage 类。我在 IBM 的 J9 虚拟机上使用 J2ME。

当我尝试调用 BufferedImge.getRastor() 方法时,出现以下异常:

Exception in thread "main" java.lang.NoSuchMethodError: java/awt/image/BufferedImage.getRastor()Ljava/awt/image/WritableRaster;

现在,根据我对 JVM 的了解,该错误基本上告诉我 BufferedImage 类没有一个名为 getRastor() 的方法,它返回一个 WritableRaster 对象,但是该方法记录在 API 中,它来自 1.4 版.2 所以应该与 J2ME 兼容。

我不知道这里发生了什么,你能帮忙吗?

干杯,

皮特

【问题讨论】:

    标签: java exception awt


    【解决方案1】:

    您将无法在 J2ME 中使用 AWT 中的任何内容,因为它不受支持。

    这是因为 J2ME 没有 AWT。 AWT 旨在用于具有不同用户模型和功能的桌面应用程序 (Java SE)。

    您可以查看 J2ME 文档here

    J2ME 对 GUI 使用不同的方法,您可以使用高级抽象 API (FORMS) 和低级 API (CANVAS)。

    【讨论】:

    • 这非常令人困惑 - 我可以成功执行使用 java.awt.Image 和 java.awt.Frame(以及更多!)的代码,那么为什么支持这些而 BufferedImage 不支持?跨度>
    • 可能是因为您的 IDE 在类路径中有 JavaSE。我不确定。:/你在用什么?太阳的无线工具包?还是一些专有工具包?你能在实际设备上成功运行这段代码吗?
    【解决方案2】:

    我不认为这是你的答案......但既然你引用了你的例外并且我假设你剪切并粘贴了它,我会尽力提供帮助。

    是不是方法:

    getRaster
    

    不是

    getRastor
    

    ?

    (对不起,如果这不是你的问题......)

    【讨论】:

    • 抱歉,我从运行我的代码的 PDA 上复制了错误消息(很糟糕!)。我已经检查了两倍,我确实调用了 .getRaster()
    • (所以这不是问题所在)
    【解决方案3】:

    接受的答案不正确(截至 2009 年 8 月 5 日)。您可以使用哪些 API 取决于您部署的配置和配置文件组合。但是,您确实需要参考 J2ME 文档以了解确切支持哪些 1.4 类和成员。

    将 CDC 1.0 与 Personal Profile 1.1 结合使用,您将获得 Java SE 1.4 的精简版。 Personal Profile 1.0 是 Java SE 1.3 的精简版。两者都有一个相当完整的 AWT 实现(不过没有 Swing)。

    我们实际上在手持/PDA 设备上使用 J9 的 CDC/PP 相当成功。

    【讨论】:

      猜你喜欢
      • 2013-06-30
      • 2013-09-29
      • 1970-01-01
      • 2011-01-11
      • 2018-05-23
      • 2023-03-21
      • 1970-01-01
      • 2014-06-14
      • 2018-09-24
      相关资源
      最近更新 更多