|
JAVA Micro Edition Низкоуровневое программирование мобильных телефонов. |
10.07.2012, 20:43
|
#1
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Hello, World!
Помогите пожалуйста..
Нужна максимально простая заготовка программы, которая делает то же, что и Hello World из MP. Ибо примеры в netbeans какие-то дикие, с неудаляемыми комментариями и прочим бредом >_<
__________________
---
|
(Offline)
|
|
11.07.2012, 00:44
|
#2
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Hello, World!
Класс midlet
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
public class Midlet extends MIDlet {
public static Canv canv;
public static Display display;
public static Midlet md;
public void startApp() {
md = this;
canv = new Canv();
display = Display.getDisplay(this);
display.setCurrent(canv);
(new Thread(canv)).start();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
canv = null;
notifyDestroyed();
}
}
класс Canv
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
public class Canv extends Canvas implements Runnable {
protected static Image screen;
protected static Graphics G;
public Canv() {
setFullScreenMode(true);
screen = Image.createImage(getWidth(), getHeight());
G = screen.getGraphics();
}
protected void paint(Graphics g) {
g.drawImage(screen, 0, 0, 20);
}
public void run() {
//сюда всякий код
}
//следующая функция не нужна, я её для удобства после MP добавил
protected void delay(int t) {
try {
Thread.sleep(t);
} catch (InterruptedException ex) {
}
}
}
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
11.07.2012, 11:36
|
#3
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Hello, World!
^_^
Спасибо, а то дико неудобно те танкоподобные примеры разбирать.
__________________
---
|
(Offline)
|
|
11.07.2012, 17:24
|
#4
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Hello, World!
Оу. Я туплю. А как "Hello, World" написать?
Что бы я ни делал, экран остаётся чистым.
__________________
---
|
(Offline)
|
|
12.07.2012, 01:21
|
#5
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Hello, World!
repaint() или типа того
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
12.07.2012, 01:22
|
#6
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Hello, World!
Вроде не получалось, сейчас попробую ещё раз..
__________________
---
|
(Offline)
|
|
12.07.2012, 01:25
|
#7
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Hello, World!
public void run() { G.fillRect(5, 5, 10, 10); this.repaint(); }
ЧЯДНТ?
__________________
---
|
(Offline)
|
|
12.07.2012, 01:26
|
#8
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: Hello, World!
Ты там ничего нарисовать не хочешь?
И да, метод delay неспроста добавлен
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.07.2012, 01:30
|
#9
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Hello, World!
Ты там ничего нарисовать не хочешь?
|
Хочу, хочу Только не могу.
__________________
---
|
(Offline)
|
|
12.07.2012, 01:32
|
#10
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Hello, World!
Я вообще не уверен, что мидлет стартует, ибо белый экран со стрелочкой "назад".
__________________
---
|
(Offline)
|
|
27.07.2012, 14:14
|
#11
|
Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Hello, World!
Сообщение от IDOL 1234
public void run() { G.fillRect(5, 5, 10, 10); this.repaint(); }
ЧЯДНТ?
|
Проблема в G. Нельзя сохранять экземпляр графикса из метода paint НА ВРЕМЯ, ПРЕВЫШАЮЩЕЕ ВЫЗОВ МЕТОДА PAINT(). При завершении паинта этой переменной приходит конец.
Решение: рисуй всё в paint'e, управляй содержимым через состояния проги, которые сам назначишь.
В run'e вызывай repaint(); serviceRepaint();
В паинте необязательно делать месиво из кода, можно создать свои функции рисования (передавать в них экземпляр графикса можно) и вызывать их:
public void paint(Graphics g) {
if(state == STATE_GAME) {
drawMap(g);
drawGui(g);
}
}
private void drawMap(Graphics g) {
//карта
}
private void drawGui(Graphics g) {
//интерфейс
}
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:43.
|