Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition > Программирование

Программирование Вопросы связанные с программированием в JAVA

Ответ
 
Опции темы
Старый 22.08.2008, 14:57   #1
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Обработка нажатий клавиш

Декомпилируем мидлетпаскалевский класс M.class
Это фрагмент:
public void keyPressed(int i){
   
KP KC i;
 }
 public 
void keyReleased(int i){
   
KP 0;
 } 
В переменной KP всегда хранится код нажатой клавиши. (Я читал про это. Считывание с клавиатуры происходит в отдельном потоке, который инициируется самой джавой.)
Вопрос такой. Как мне поступать, если я хочу обрабатывать клавиши ещё и в другом классе. Я, конечно, могу обращаться к переменной KP так: M.T.KP, но хотелось бы сделать так, чтобы класс был универсальный и его можно было бы использовать не только в этом частном случае. То есть мне нужно как-то в класс передать что-то типа указателя на эту переменную. Например, я создаю класс:
import javax.microedition.lcdui.*;

public class 
MyClass{
 public static 
void MyFunction(параметр_для_обработки_клавиш){
  . . .
  
Тут кодкоторый в цикле принимает значения нажатых клавиш и что-то с этим делает.
  . . .
 }

Какой "параметр_для_обработки_клавиш" мне передавать? Как правильно оформить?
Так-то мне в этот класс ещё нужно передать Canvas и Graphics, их я смог передать, но мне это тоже как-то не очень нравится. Можно что-нибудь сделать, наследование там какое-нибудь, чтобы проще всё стало?

P.S: Надеюсь, не слишком запутано объясняю =)
(Offline)
 
Ответить с цитированием
Старый 22.08.2008, 15:35   #2
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Обработка нажатий клавиш

Сейчас подумал... Наверно, придётся сделать специальную процедуру в классе. А потом в M.class в keyPressed(int i) и keyReleased(int i) вписать её вызов... Таким образом в мой класс постоянно будет поступать информация о нажатии/отпускании клавиш. Что скажете?
(Offline)
 
Ответить с цитированием
Старый 22.08.2008, 17:10   #3
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Обработка нажатий клавиш

лоигчнее было бы написать класс наследник M, в котором метод выглядел бы примерно так:
void keyPressed(int c) {
super.keyPressed(c);
... твоя обработка клавиш
}
ну и естественно подменить им основной класс при выполнении программы, т.е. переменные I, T, G класса M,
тогда будут корректно работать все стандартные функции и ты получишь желаемое.
(Offline)
 
Ответить с цитированием
Старый 22.08.2008, 19:07   #4
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Обработка нажатий клавиш

Не понимаю. Что значит класс-наследник? Написать копию M.class что ли? И все методы переопределить? О_о И зачем подменять? У меня основная программа будет идти в M, а в дополнительном классе просто типа функция будет (кусок кода, который кое-что делает), но этой функции нужен и канвас, и графикс, и клавиши обрабатывать... Вот говорят, что на ООП легче всё делать. Нифига. Или, например, ещё читал, что одно из преимуществ ООП в том, что можно абстрагироваться от устройства какого-то конкретного класса и юзать его в своём приложении, зная только его методы. Но у меня вышла вот такая забавная вещь. Есть классы g.class и b.class. В b.class я создаю переменную g. В итоге происходит путаница! Если я пытаюсь обратиться к переменной g, то компилятор пытается обратиться к g.class! И выдаёт ошибку. То есть, если я использую сторонний класс какой-нибудь, а в структуре моей программы есть класс, имя которого совпадёт с какой-нибудь переменной в стороннем классе, то тоже произойдёт путаница. Может я что-то не так делаю?
(Offline)
 
Ответить с цитированием
Старый 24.08.2008, 23:02   #5
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Обработка нажатий клавиш

зачем переписывать все методы? только те реакцию которых ты хочешь изменить.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли сделать так чтобы при нажатии "вверх" и "вниз" двигалась одна картинка, а при нажатии "вправо" и "влево" - другая Total_Nube_&_Lamo Основной форум 2 13.12.2009 22:00
Обработка нажатий кнопок Skythrone Прочие вопросы 4 11.11.2008 13:10
отслежывание нажатий клавиш beZ_probleM Основной форум 7 20.10.2008 01:17
Отлов нажатий клавиш SkyFox Основной форум 2 27.06.2008 09:42
Обработка клика Trilliput BlitzMax 13 28.11.2007 14:35


Часовой пояс GMT +4, время: 02:55.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com