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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не выводится картинка, Проблема с графикой 
:(
    Опции темы
sadarav
Дата 19.5.2007, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброе время суток, господа программеры smile У меня проблемка. На протяжении нескольких дней писал программу....ну как сказать программу...програмку, которая является частью моего обучения j2me. Смысл такой: появляется изображение, потом через некоторое время оно убирается и на его месте появляется форма с текстом, взятом из файла. Все удалось реализовать, с помощью доброго человека с ником Dancer_j2me, за что ему огромное спасибо smile Но не все так хорошо....почему то при  запуске программы вместо изображения появляется пустой экран, я никак не могу понять почему так происходит...может вы мне дадите подсказку?

Главный класс:
 
Код

import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 
import java.io.* ; 

public class Sms_Project extends MIDlet implements CommandListener { 
private Display display; 
private Command exitCommand; 
private Form form; 
    private DrawImage di = null; 
    private static boolean isPaused = false; 

private void init() { 
    exitCommand = new Command ("Выход", Command.EXIT, 1); 
    display = Display.getDisplay (this); 
    di = new DrawImage(); 
    di.start(); 
    display.setCurrent (di); 

    form = new Form ("Тест"); 
    getText("text.text"); 
    form.addCommand (exitCommand); 
    form.append(strBuff); 
    form.setCommandListener (this); 


protected void startApp() { 
    if(!isPaused) { 
        init(); 
    } else { 
        isPaused = false; 
    } 

    while (di !=null && di.isRunning()) { 
        try { 
           Thread.sleep(3000);  
        } catch (java.lang.InterruptedException zxz) {} 
    } 

    display.setCurrent (Sms_form); 


protected void pauseApp() { 
    isPaused = true; 


protected void destroyApp(boolean b) { 
    notifyDestroyed(); 


public void commandAction(Command c, Displayable d) { 
    if (c == exitCommand) { 
        destroyApp(false); 
    } 


public String getText(String path) { 
        DataInputStream dis = new DataInputStream(getClass().getResourceAsStream(path)); 
StringBuffer strBuff = new StringBuffer();        
int ch = 0; 
        try { 
            while ((ch = dis.read()) != -1) { 
                strBuff.append((char) ((ch >= 0xc0 && ch <= 0xFF) ? (ch + 0x350) : ch)); 
            } 
            dis.close(); 
        } catch (Exception e) { 
            System.err.println("ERROR in getText() " + e); 
        } 
        return strBuff.toString(); 

}


Класс, отвечающий за графику:

Код

import javax.microedition.lcdui.*; 
import java.io.*; 
public class DrawImage extends Canvas implements Runnable { 
    private Image im; 
    private int width; 
    private int height; 
    private boolean isRun=false; 

    public DrawImage() { 
        super(); 
        width = getWidth(); 
        height = getHeight(); 
    } 

    public void start() { 
        Thread t = new Thread (this); 
        t.start(); 
    } 

    public void run() { 
        isRun = true; 
        try { 
            im = Image.createImage ("/Image.png"); 
        } catch (IOException ioe) {} 

        try { 
           Thread.sleep(10000);  
        } catch (java.lang.InterruptedException zxz) {} 

        isRun=false; 
    } 

    public void paint (Graphics g) { 
        g.setColor (0xffffff); 
        g.fillRect(0, 0, width, height); 
        g.drawImage(im, 0, 0, 0); 
    } 

    public synchronized boolean isRunning() { 
        return isRun; 
    } 
}

Заранее спасибо за помощь!

PM MAIL   Вверх
Samuil
  Дата 20.5.2007, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


в(Job)ываю
**


Профиль
Группа: Участник
Сообщений: 705
Регистрация: 26.4.2006
Где: Uzbekistan.Tashke nt

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



Возможно что:
1) Он ждет пока загружается картинка

private void init() { 
    exitCommand = new Command ("Выход", Command.EXIT, 1); 
    display = Display.getDisplay (this); 
    di = new DrawImage(); 
    di.start(); 
    display.setCurrent (di); 

    form = new Form ("Тест"); 
    getText("text.text"); 
    form.addCommand (exitCommand); 
    form.append(strBuff); 
    form.setCommandListener (this); 
2) У тебя вот тут: должно быть  display.setCurrent (form); 

Я этот код не компилил. Скомпиль и отпишись smile 


--------------------
Выбор уже сделан, остается его только осознать   
smile    smile 
      smile  

user posted image
PM MAIL ICQ   Вверх
sadarav
Дата 20.5.2007, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Все оказалось гораздо прощеsmile Я не добавил метод repaint() smile Но теперь у меня возникло два вопроса! Первый:Можно ли как нибудь добавить в форму элемент вектора?Я пробовал сохранять элемент в переменной типа String, но мне выдавалась ошибка 
incompatible types... И второй: когда я беру стандартный пример отправки смс, взятый с этого сайта, то мне выводится ошибка:
C:\WTK21\apps\Sms_Project\src\Sms_Project.java:134: cannot resolve symbol

symbol  : variable Connector 

location: class Sms_Project

      MessageConnection conn = (MessageConnection) Connector.open(addr);
Почему происходит такая фигня????!!!!
PM MAIL   Вверх
javastic
Дата 21.5.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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




M
javastic
Уважаемый sadarav, нельзя задавать несколько вопросов в одном посте. Пожалуйста сделай столько постов сколько вопросов!




--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Dancer
Дата 21.5.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

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



мы тут все победители шоу экстарсенсов, бляха! 
Ну сколько можно..., если проблема в кусках кода, по будьте добры показывайте код (который как вам кажется вызывает ошибку), и информацию об ошибке (как можно полнее. А лучше не поленитесь и в коде наставьте необходимых дебажных выводов чтобы точнее вычленить код, приводящий к ошибке. Заключите этот код в try/catch и получити printStackTrace)
Скорее всего ты не подключил в своём проекте использование JSR-120/JSR-205

С repaint() - каюсь, я проИпал smile, но писал то на коленке smile, молодец, если сам догодался/нашёл ошибочку.


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
veis
Дата 11.7.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Rebyata a chto bistree vipolnyaetsya
g.drawImage(.............); ili g.drawRBG(.........);
piwu svoyu pervuyu igru i uje tormoza bespokoyat...... smile 
PM MAIL   Вверх
javastic
Дата 11.7.2007, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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




M
javastic
veis, просьба писать по русски, не будем портить зрение другим участникам.


лови время до выполнения метода и после, потом выводи результат.


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
veis
Дата 11.7.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



пишу я арканоид
проблема в вырисовке верхнего поля то есть квадратики об которые ударяется шарик
я использую массив int igp[][]; рисую 
for ( k = 0; k <10; k++)for (t = 0; t < 4; t++)
if(s.igp[k][t]==1)g.drawRGB(im,0,17,k*17+2,t*8,17,8,true);  
реализовал в отдельном потоке все равно пока не отрисует ждет вся прога

Это сообщение отредактировал(а) veis - 11.7.2007, 12:09
PM MAIL   Вверх
Dancer
Дата 11.7.2007, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

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



а нахрена все кубики перерисовывать, может быть лучше перерисовывать лишь тот, в который шарик ударился? это будет гораздо быстрее. Каждый кубик это объектик, который имеет свой метод paint(). Как в кубик попал шарик, ты там либо счётчик уменьшаешь увеличиваешь, при необходимости как-то красиво перерисовываешь этот кубик, или вообще уничтожаешь кубик с экрана. Подумай логику получше....


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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