2009-02-26 2 views
0

Я пытаюсь использовать класс BufferedImage в AWT. Я использую J2ME на виртуальной машине IBM J9.Java AWT - проблемы с BufferedImage при использовании J2ME и J9

Когда я пытаюсь вызвать метод 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.

Я понятия не имею, что здесь происходит, вы можете помочь?

Приветствия,

Пит

ответ

0

Вы не сможете использовать все из AWT в J2ME, так как его не поддерживается.

Это происходит потому, что у J2ME нет AWT. AWT предназначен для использования в настольных приложениях (Java SE) с другой пользовательской моделью и функциональными возможностями.

Вы посмотрите на J2ME документов можете here

J2ME использует другой подход в отношении ГПИ, вы можете использовать API абстракции высокого уровня (форму) и API низкого уровня (РИСУНОК).

+0

Это очень запутанно - я могу успешно выполнить код, который использует java.awt.Image и java.awt.Frame (и многое другое!), так почему же они поддерживаются, а BufferedImage - нет? – 2009-02-27 00:31:20

+0

Возможно, потому, что ваша IDE имеет JavaSE в пути к классам. Я не уверен.:/ Что вы используете? солнечный беспроводной набор инструментов? Или какой-то фирменный инструментарий? Можете ли вы успешно запустить этот код на самом устройстве? –

0

Я не думаю, что это ваш ответ ... но так как вы процитировали ваше исключение, и я предполагаю, что вы вырезать и вставить его, я постараюсь помочь.

Не метод:

getRaster 

не

getRastor 

?

(извините, если это не то, что он нездоров вас ...)

+0

Извините, я скопировал сообщение об ошибке (плохо!) С КПК, на котором работает мой код. Я удвоил флажок, и я вызываю .getRaster() – 2009-02-26 23:59:48

+0

(так что это не проблема) – 2009-02-27 00:00:21

0

Принятый ответ неправильный (от 2009-08-05). Именно то, что у вас есть API, зависит от конфигурации и комбинации профилей, которые вы развертываете. Тем не менее, вам необходимо обратиться к документации J2ME, в которой содержатся 1.4 классы и члены.

Используя CDC 1.0 с личным профилем 1.1, вы получаете сокращенную версию Java SE 1.4. Личный профиль 1.0 - это сокращенный Java SE 1.3. Оба имеют довольно полной реализации AWT (не Swing, хотя).

Мы действительно используем CD/PP J9 на портативных/PDA-устройствах довольно успешно.