Отслеживание нажатия клавиш java

171
28 декабря 2018, 23:20

Есть ли в Java метод, который просто возвращает нажатую в данный момент клавишу? Как например метод getch() из msvcrt в python, там все вообще легко:

from msvcrt import getch, kbhit
while 1:
    if kbhit():
        print(getch())

Хочу сделать примерно тоже в Java.

Если что, хочу сделать что-то типа змейки в консольном окне

Answer 1

Отсюда:

1) Определение по коду источник события:

addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                formKeyPressed(evt);
            }
        });

2) Проверяем нажатую клавишу:

private void formKeyPressed(java.awt.event.KeyEvent evt) {                                
    switch (evt.getKeyCode()) {
        case KeyEvent.VK_BACK_SPACE:
            break;
        case KeyEvent.VK_ENTER: //Нажата клавиша Enter
            break;
        default:
    }
}

Вообще, на похожий вопрос уже отвечали.

By Selden:

Средствами Java реализовать консольный отлов нажатия функциональных клавиш невозможно. Отловить удастся только клавиши, добавляющие в консоль некоторый символ.

Варианты решения:

  • Написать свое AWT/Swing или даже SWT - приложение, имитирующее консоль, но вместо нее содержащее текстовое поле, к которому уже навесить нужные слушатели.

  • Выбрать клавишу (или сочетание клавиш), вводящую в консоль некоторый символ (например, "+" и "-" для переключения переменной). И попробовать убирать этот символ из консоли, дописывать в нее желаемые результаты и т.д (в том, что удастся такое реализовать - сомневаюсь).

В обоих случаях нужно не забыть позаботиться о кроссплатформенности приложения, иначе использовать Java для подобных целей вообще не стоит.

А вообще, могли бы погуглить. Есть куча хороших статей про игры на Java.

Например, WikiBooks или TProger.

READ ALSO
как разделить бустрап секцию?

как разделить бустрап секцию?

Всем приветСейчас верстаю сайт(только учусь), и наткунлся на проблему, нужно сделать 2 колонки вертикальные, как на макете

208
Замедлить переход между сменой фото

Замедлить переход между сменой фото

Есть такая мини галерея, подскажите пожалуйста как замедлить переход между фото, чтобы он не так резко переходил

214
Как с jquery отсекать неправильный тип данных

Как с jquery отсекать неправильный тип данных

Прошу помощи, задача сложить все что в value c классом numПроблемы возникают если в value попадает '-' или 'пусто' вместо числа, тогда sum принимает пустое...

229
Помогите понять пример hasOwnProperty()

Помогите понять пример hasOwnProperty()

Читаю книгу по JavaScript'у, там такого рода пример:

199