Модераторы: javastic, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> J2ME не могу загрузить рисунок на форму, J2ME не могу загрузить рисунок на форму 
V
    Опции темы
nickcherevko
Дата 5.5.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.5.2008
Где: Харьков

Репутация: нет
Всего: нет



Помогите плиз загрузить изображение в форму, уже всё перепробовал нифига не получаеться

Вот код  

Код

public void createImage() {
        Form d = new Form("Foto 2");
        
       
        try {
            image = Image.createImage("/logo.png");
            ImageItem img = new ImageItem("fdgd",image,ImageItem.LAYOUT_CENTER,"no found image!"); 
        } catch(java.io.IOException io) { }
          
               

        d.append(img);          
        mydisplay.setCurrent(d);
    }


Выкидывает вот такое исключение 

Running in the identified_third_party security domain

Цитата

java.lang.NullPointerException
        at javax.microedition.lcdui.Form.append(Form.java:638)
        at Web.Web.createImage(Web.java:50)
        at Web.Web.commandAction(Web.java:71)
        at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(Display.java:2093)
        at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(Display.java:2929)
        at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(DefaultEventHandler.java:297)
        at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(AutomatedEventHandler.java:667)
        at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.handleVmEvent(DefaultEventHandler.java:711)
        at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(DefaultEventHandler.java:608)


Добавлено @ 12:10
изображение лежит в папке /res  

Это сообщение отредактировал(а) W0LF - 5.5.2008, 13:34
PM MAIL ICQ   Вверх
eugine_s
Дата 5.5.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



1. Поле ImageItem img - область видимости только try-catch блок. Объявление img нужно вынести из этого блока.
2. Если произошла ошибка при создании image = Image.createImage("/logo.png"), то img останется не проинициализированым. Нужно обрабатывать твой catch (IOException io) {}

Добавлено через 2 минуты и 11 секунд
если в папке res, тогда должно быть вот так:

image = Image.createImage("/res/logo.png");

Или это в проекте в папке res лежит, а в jar-е в корне лежит?
PM MAIL   Вверх
nickcherevko
Дата 5.5.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.5.2008
Где: Харьков

Репутация: нет
Всего: нет



изображение в jar-e лежит в корне , я пишу в netBeans может этот ide неправильно компилит???
PM MAIL ICQ   Вверх
Brodyaga
Дата 5.5.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 599
Регистрация: 19.1.2008

Репутация: 2
Всего: 2



Тебе же eugine_s сказал:
Код

1. Поле ImageItem img - область видимости только try-catch блок. Объявление img нужно вынести из этого блока.


Вот вынести объявление и думаю всё будет ок.
PM MAIL   Вверх
W0LF
Дата 5.5.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


alexander lonsky
***


Профиль
Группа: Участник
Сообщений: 1164
Регистрация: 9.2.2006
Где: Ukraine.Dnepropet rovsk

Репутация: 19
Всего: 20



Сначала сделай так - 
Код

try    {
            image = Image.createImage("/logo.png");
            ImageItem img = new ImageItem("fdgd",image,ImageItem.LAYOUT_CENTER,"no found image!"); 
            
        } catch(java.io.IOException io) { 
                io.printStackTrace();
        }
          
        if (img != null) {
           d.append(img);
       }   
        

Посмотри на регистр .png в jar файле. он может быть большими - измени его в каком-нидь файлманагере на маленькие ну или же у себя в коде поменяй на "/logo.PNG"

Это сообщение отредактировал(а) W0LF - 5.5.2008, 13:40


--------------------
iOS developer
PM MAIL WWW Skype GTalk   Вверх
eugine_s
Дата 5.5.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(nickcherevko @  5.5.2008,  12:52 Найти цитируемый пост)
может этот ide неправильно компилит??? 


а как это? (с) Лесь

Я уже тебе написал две ошибки, которые у тебя есть в программе. Ты их исправил?

Обрати внимание на вот это: 
1. Поле ImageItem img - область видимости только try-catch блок. Объявление img нужно вынести из этого блока.

Скорее всего у тебя в программе (вне метода createImage()) есть вот такое объявление переменной 
ImageItem img;

тогда в твоем try-catch блоке нужно сделать вот так:

Код

img = new ImageItem("fdgd",image,ImageItem.LAYOUT_CENTER,"no found image!"); 

//вместо вот этого
ImageItem img = new ImageItem("fdgd",image,ImageItem.LAYOUT_CENTER,"no found image!"); 
 


PM MAIL   Вверх
nickcherevko
Дата 5.5.2008, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.5.2008
Где: Харьков

Репутация: нет
Всего: нет



Ничего не получаеться  smile 

Вот полный код приложения, я уже не знаю чё делать.....

public class Hello extends MIDlet {
    
    private Image image;
    private ImageItem img;
    private Display mydisplay;
       
    
    public void startApp() {
        
        mydisplay = Display.getDisplay(this);
        
        Form f = new Form("");

        try {
            image = Image.createImage("/logo.png");
            img = new ImageItem("FOTO",image,ImageItem.LAYOUT_CENTER,"no found image!"); 
        } catch(java.io.IOException io) { 
                io.printStackTrace();
        }
          
        if (img != null) {
           f.append(img);
        } else {
            f.append("image no found");
        }   
        
       mydisplay.setCurrent(f); 
    }
           
    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}


Всё равно выдаёт туже ошибку, та ещё теперь и изображение не копируеться в jar  файл

на экран выводит image no found. получаеться img = null

Добавлено через 13 минут и 7 секунд
Я в шоке что это может быть, во всех книгах такие примеры и ничего не работает.  smile ..Кто нибудь может прислать пример где работает, я не знаю что даже может быть........

Это сообщение отредактировал(а) nickcherevko - 5.5.2008, 15:17
PM MAIL ICQ   Вверх
nickcherevko
Дата 5.5.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.5.2008
Где: Харьков

Репутация: нет
Всего: нет



Кто знает в чём проблема,, помогите плиз!!!!!
PM MAIL ICQ   Вверх
Dummy
Дата 5.5.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 21.5.2007

Репутация: 7
Всего: 19



Похоже, что просто не получается открыть поток из jar-файла.

Попробуй в порядке отладки написать, например, так:

Код

InputStream is = getClass().getResourceAsStream("/logo.png");

if (is == null) {
    System.out.println("Couldn't open resource input stream");
}


Если (is == null), то какое-то несоответствие между урлом и положением картинки в jar-файле... Ты-таки пробовал этот урл: "/res/logo.png" - или только на "/logo.png" пытался?
PM MAIL   Вверх
nickcherevko
Дата 5.5.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.5.2008
Где: Харьков

Репутация: нет
Всего: нет



попробовал вот это 


InputStream is = getClass().getResourceAsStream("/logo.png");
if (is == null) {
    System.out.println("Couldn't open resource input stream");
}


пишет что действительно не видит изображение
PM MAIL ICQ   Вверх
eugine_s
Дата 5.5.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



Цитата(Dummy @  5.5.2008,  15:31 Найти цитируемый пост)
Попробуй в порядке отладки написать, например, так:


Конечно можно так сделать, но зачем? 

Есть же jar файл, открыть его на компе обычным WinRar (или любым другим архиватором, который поддерживает rar) и посмотреть есть ли в корне этого архива файл logo.png. Если есть, то тогда проблема в регистре букв... 

Но картинки все равно нет в jar-e:

Цитата(nickcherevko @  5.5.2008,  15:08 Найти цитируемый пост)
Всё равно выдаёт туже ошибку, та ещё теперь и изображение не копируеться в jar  файл


Нужно настроить НетБинс чтобы файл (картинка) помещался в jar....

PM MAIL   Вверх
nickcherevko
Дата 5.5.2008, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.5.2008
Где: Харьков

Репутация: нет
Всего: нет



кинул изображение в корень приложения , вроде изображение скопировало в jar файл и при дебаге 
  и  вот этот блок выдал что всё окей, а изображение всё равно не показываеться
try {
            image = Image.createImage("logo.png");
            img = new ImageItem("FOTO",image,ImageItem.LAYOUT_CENTER,"no found image!"); 
        } catch(IOException ioe) { 
            InputStream is = getClass().getResourceAsStream("logo.png");
        
            if (is == null) {
                System.out.println("Couldn't open resource input stream");
            } else {
                System.out.println("Fuck"); 
            }
        }



Это сообщение отредактировал(а) nickcherevko - 5.5.2008, 15:57
PM MAIL ICQ   Вверх
eugine_s
Дата 5.5.2008, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 14.11.2007
Где: Киев

Репутация: 17
Всего: 17



В НетБинсе вот так добавляются ресурсы:

File -  "название_твоего_проекта" Properties - Build - Libraries & Resources -  убрать галочку с Use Values from "DefaultConfiguration" - Add Folder (выбираешь свою папочку res) - Добавилась в список папка, напротив Package для этой папки должна стоять галочка - OK.

Кажется так, но могу ошибиться так как недавно перешел c IDEA на NetBeans и продолжаю использовать Ant + Antenna

Добавлено через 1 минуту и 47 секунд
Цитата(nickcherevko @  5.5.2008,  15:45 Найти цитируемый пост)
кинул изображение в корень приложения , вроде изображение скопировало в jar файл и при дебаге 
  и  вот этот блок выдал что всё окей, а изображение всё равно не показываеться


может jar выложишь ?

PM MAIL   Вверх
math64
Дата 5.5.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



В NetBeans нет отдельного каталога для ресурсов, logo.png размещается в каталоге src, как и Hello.java (если не используешь пакеты)
PM   Вверх
nickcherevko
Дата 5.5.2008, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 5.5.2008
Где: Харьков

Репутация: нет
Всего: нет



у меня в jar файле такая вот структура 

 Hello/
      Hello.class
      logo.png
 META-INF
      MANIFEST.MF

и ещё пишет что Hello.class  тип файла php как такое может быть

Добавлено через 2 минуты и 29 секунд
Спасибо eugine_s , щас настрою....хотя мне вот math64 подсказал, оно действительно так и есть , когда я положил изображение в папку src изображение скопировалось в jar файл , а вот показываться на экране не хочет хоть убей
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.