Обработка нажатий клавиш
Декомпилируем мидлетпаскалевский класс M.class
Это фрагмент: PHP код:
Вопрос такой. Как мне поступать, если я хочу обрабатывать клавиши ещё и в другом классе. Я, конечно, могу обращаться к переменной KP так: M.T.KP, но хотелось бы сделать так, чтобы класс был универсальный и его можно было бы использовать не только в этом частном случае. То есть мне нужно как-то в класс передать что-то типа указателя на эту переменную. Например, я создаю класс: PHP код:
Так-то мне в этот класс ещё нужно передать Canvas и Graphics, их я смог передать, но мне это тоже как-то не очень нравится. Можно что-нибудь сделать, наследование там какое-нибудь, чтобы проще всё стало? P.S: Надеюсь, не слишком запутано объясняю =) |
Ответ: Обработка нажатий клавиш
Сейчас подумал... Наверно, придётся сделать специальную процедуру в классе. А потом в M.class в keyPressed(int i) и keyReleased(int i) вписать её вызов... Таким образом в мой класс постоянно будет поступать информация о нажатии/отпускании клавиш. Что скажете?
|
Ответ: Обработка нажатий клавиш
лоигчнее было бы написать класс наследник M, в котором метод выглядел бы примерно так:
void keyPressed(int c) { super.keyPressed(c); ... твоя обработка клавиш } ну и естественно подменить им основной класс при выполнении программы, т.е. переменные I, T, G класса M, тогда будут корректно работать все стандартные функции и ты получишь желаемое. |
Ответ: Обработка нажатий клавиш
Не понимаю. Что значит класс-наследник? Написать копию M.class что ли? И все методы переопределить? О_о И зачем подменять? У меня основная программа будет идти в M, а в дополнительном классе просто типа функция будет (кусок кода, который кое-что делает), но этой функции нужен и канвас, и графикс, и клавиши обрабатывать... Вот говорят, что на ООП легче всё делать. Нифига. Или, например, ещё читал, что одно из преимуществ ООП в том, что можно абстрагироваться от устройства какого-то конкретного класса и юзать его в своём приложении, зная только его методы. Но у меня вышла вот такая забавная вещь. Есть классы g.class и b.class. В b.class я создаю переменную g. В итоге происходит путаница! Если я пытаюсь обратиться к переменной g, то компилятор пытается обратиться к g.class! И выдаёт ошибку. То есть, если я использую сторонний класс какой-нибудь, а в структуре моей программы есть класс, имя которого совпадёт с какой-нибудь переменной в стороннем классе, то тоже произойдёт путаница. Может я что-то не так делаю?
|
Ответ: Обработка нажатий клавиш
зачем переписывать все методы? только те реакцию которых ты хочешь изменить.
|
Часовой пояс GMT +4, время: 15:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot