Форум программистов, компьютерный форум, киберфорум
Java ME (J2ME)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 12.04.2011
Сообщений: 35

Обработка событий с клавиш телефона.

13.10.2011, 10:58. Показов 1462. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу пример по книге "Программирование мобильных телефонов на Java 2 Micro Edition". Горнаков Станислав. Тема: Обработка событий с клавиш телефона.
Вот здесь http://baklashka.biz/Glava_08/Index08.htm тот же самый пример.
Проект запускается без ошибок (NetBeans 7.0.1), но выводится только пустой экран с кнопкой Back.

Класс MainGame
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
 
public class MainGame extends MIDlet implements CommandListener {
    
    private Command exitMidlet = new Command("Выход", Command.EXIT,0);
    private MyGameCanvas mr;
    
    public void startApp() {
        try {
            mr = new MyGameCanvas();
            mr.start();
            mr.addCommand(exitMidlet);
            mr.setCommandListener(this);            
            Display.getDisplay(this).setCurrent(mr);
        } catch (java.io.IOException zxz) {}
    }
    
    public void pauseApp () {}
    
    public void destroyApp (boolean unconditional) { if (mr != null) mr.stop();}
    
    public void commandAction (Command c, Displayable d) {
        if ( c == exitMidlet) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
}
Класс MyGameCanvas
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
 
public class MyGameCanvas extends GameCanvas implements Runnable {
    private MySprite bol;
    private LayerManager lm;
    boolean z;
    
    public MyGameCanvas() throws IOException {
        super(true);
        Image im = Image.createImage("/bol.png");
        bol = new MySprite(im,23,23);
        bol.setPosition(getWidth()/2, getHeight()/2);
        lm = new LayerManager();
        lm.append(bol);
    }
    
    public void start() {
        z = true;
        Thread t = new Thread();
        t.start();
    }
    
    public void stop() {
        z = false;
    }
    
    public void run() {
        Graphics g = getGraphics();
        while (z) {            
            inputKey();
            init(g);
            try {Thread.sleep(20);} catch (java.lang.InterruptedException zxz) {}            
        }
    }
    
    private void inputKey() {
        int keyStates = getKeyStates();
        if ((keyStates & LEFT_PRESSED)!=0) bol.moveLeft();
        if ((keyStates & RIGHT_PRESSED)!=0) bol.moveRight();
        if ((keyStates & UP_PRESSED)!=0) bol.moveUp();
        if ((keyStates & DOWN_PRESSED)!=0) bol.moveDown();        
    }
    
    private void init(Graphics g) {
        g.setColor(0xffffff);
        g.fillRect(0, 0, getWidth(), getHeight());
        lm.paint(g, 0, 0);
        flushGraphics();
    }
}
Класс MySprite
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
 
public class MySprite extends Sprite {
    
    public MySprite(Image image, int fw, int fh) {
        super(image, fw, fh);
    }
    
    public void moveLeft() {
        move(-1,0);
    }
    
    public void moveRight() {
        move(1,0);
    }
    
    public void moveUp() {
        move(0,1);
    }
    
    public void moveDown() {
        move(0,-1);
    }
}
Миниатюры
Обработка событий с клавиш телефона.  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.10.2011, 10:58
Ответы с готовыми решениями:

Назначение клавиш и обработка событий
package Menu; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionEvent; import...

Обработка нажатий клавиш или событий?
В Лотусе при наборе фамилии в новой записке и нажатии Enter, вываливает сразу первая попавшаяся запись с такой фамилией из локальной АК,...

Коды клавиш и обработка событий клавиатуры в консоли
Многие часто спрашивают один и тот же вопрос по поводу обработки событий нажатия клавиш в консоли. вот простейший пример перехвата: ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2011, 10:58
Помогаю со студенческими работами здесь

Обработка событий вне формы (глобальный перехват клавиш)
Здравствуйте, уважаемые форумчане! В процессе обучения у меня возникли 2 вопроса: 1. Можно ли написать приложение для обработки нажатия...

Обработка событий. Механизм делегирования событий
Разработать учебную программу. Основная ее задача – разработка упрощенной имитации поведения объектов (все последующие лабораторные работы...

Отслеживание событий клавиш в CRT
В GraphABC есть такая возможность OnKeyDown и OnKeyUp, как примерно такое реализовать в модуле CRT. Следить нужно только за одним пробелом....

Обработчик событий клавиш андроид
Доброго времени суток! На телефоне есть 3 клавиши внизу: возврат, вторая и правая. Подскажите, какие обработчики события использовать для...

Перехват событий нажатия клавиш (стрелок клавиатуры)
Доброе время суток! Подскажите как перехватить нажатие клавиш "вверх", "вниз", "влево", "вправо" на форме, с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru