Как получить код нажатия клавиши в Java AWT с помощью keyEventDispatcherJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Как получить код нажатия клавиши в Java AWT с помощью keyEventDispatcher

Сообщение Гость »


Можно ли получить простой код нажатой клавиши с помощью KeyEventDispatcher? Я пытаюсь перехватить нажатые клавиши, объединить их в строку и отобразить в AWT TextArea (простой текстовый редактор). Проблема в том, что KeyEventDispatcher возвращает три целых числа в трех строках. Вообще говоря, код в теле диспетчера выполняется трижды после нажатия любой клавиши, и я не знаю почему. В первой строке — номер кода ключа, во второй — 0, в третьей — тот же код, что и в первой. Если я нажму любую функциональную клавишу, появятся только два одинаковых числа.

публичный класс KeyEventInterceptionExample { частный статический StringBuilder keyBuffer = новый StringBuilder(); частная статическая TextArea textArea; public static void main(String[] args) { EventQueue.invokeLater(() -> { Frameframe = new Frame("Пример перехвата ключевых событий"); textArea = новая TextArea(); textArea.setEditable(ложь); textArea.setBounds(20, 30, 300, 150); MyKeyEventDispatcher keyEventDispatcher = новый MyKeyEventDispatcher(); KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(keyEventDispatcher); Frame.add(textArea); Frame.setSize(350, 220); Frame.setLayout(ноль); Frame.setVisible(истина); Frame.addWindowListener(новый java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent windowEvent) { Система.выход(0); } }); }); } статический класс MyKeyEventDispatcher реализует KeyEventDispatcher { @Override public boolean sendKeyEvent(KeyEvent e) { int cCode = e.getKeyCode()); // я решаю, какой символ будет отображаться textArea.append(myChar); вернуть истину; } } } Мне нужно получить простой целочисленный код нажатой клавиши. Я решу, что отображать, и добавлю это в TextArea. Кроме того, как я могу распознать, какие клавиши нажаты одновременно?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»