![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Rusico |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
Здравствуйте, даже не знаю с чего начать. Вопрос наверное глупый, однака где искал ненашёл.
Хочу чтоб моё приложение реагировало на события от клавы, что прекрасно работает, но ещё больше мне хочется чтоб оно реагировало на нажатие комбинаций клавиш, таких как UP одновременно с LEFT или RIGHT. Может кто сталкивался с похожей проблемой? HELP! ШПАШИБО. |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Вот все что пришло в голову:
По идее, должен быть способ попроще? -------------------- |
|||
|
||||
| Rusico |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
ЩА попробую, спасибо.
|
|||
|
||||
| Rusico |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
К сожалению не работает, если я конечно всё правильно сделал.
|
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
? Код работает, в примере нужно фокус кнопке отдать (нажать на нее), тогда кей листенер
заработает. -------------------- |
|||
|
||||
| Rusico |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
Щаз объясню: я пытаюсь написать маленькую програмку на java 3D, там кубик летает в 3-х мерном пространстве, а управляю я им по средствам клавиатуры, класс, который осуществляет его навигацию обрабатывает событие немного по другому:
import java.awt.*; import java.awt.event.*; import java.net.*; import java.util.BitSet; import java.util.*; import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.geometry.*; import com.sun.j3d.utils.image.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.loaders.objectfile.ObjectFile; import com.sun.j3d.loaders.Scene; public class Navigator extends Behavior { private WakeupCondition wupcon; private TransformGroup transform; public Navigator(TransformGroup tr) { transform = tr; WakeupOnAWTEvent wupevent = new WakeupOnAWTEvent(KeyEvent.KEY_PRESSED); WakeupCriterion[] wupcrit = {wupevent}; wupcon = new WakeupOr(wupcrit); } public void initialize() { wakeupOn(wupcon); } public void processStimulus(Enumeration detected) { while(detected.hasMoreElements()) { WakeupCriterion wupcrit = (WakeupCriterion)detected.nextElement(); if(wupcrit instanceof WakeupOnAWTEvent) { WakeupOnAWTEvent awtevent = (WakeupOnAWTEvent)wupcrit; AWTEvent[] events = awtevent.getAWTEvent(); moveShape(events); } } wakeupOn(wupcon); } public void moveShape(AWTEvent[] events) { boolean isForvPressed = false; boolean isPrevPressed = false; boolean isLeftPressed = false; boolean isRighPressed = false; boolean isUpPressed = false; boolean isDownPressed = false; for(int x=0;x<events.length;x++) { if(events[x] instanceof KeyEvent) { KeyEvent keyevent = (KeyEvent)events[x]; int keyCode = keyevent.getKeyCode(); if(keyevent.getID() == KeyEvent.KEY_PRESSED) { Transform3D trans = new Transform3D(); transform.getTransform(trans); Vector3f trVector = new Vector3f(); trans.get(trVector); if(keyCode == KeyEvent.VK_LEFT){isLeftPressed = true;} if(keyCode == KeyEvent.VK_UP){isForvPressed = true;} if(isLeftPressed && isForvPressed){System.out.println("YES");} } if(keyevent.getID() == KeyEvent.KEY_RELEASED) { if(keyCode == KeyEvent.VK_LEFT){isLeftPressed = false;} if(keyCode == KeyEvent.VK_UP){isForvPressed = false;} } } } } } } } |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Тут не сработает; нужно помещать этот код в keyPressed, keyReleased.
-------------------- |
|||
|
||||
| Rusico |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 144 Регистрация: 17.5.2004 Репутация: нет Всего: нет |
Ладно, всё равно спасибо
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |