ОК, вы что-то не так поняли.
Ключи - это ключи, а символы - это символы. Символы являются результатом нажатия клавиш, и одна и та же клавиша может приводить к различным символам в зависимости от обстоятельств (комбинации клавиш, такие как Alt , Control , Shift и т. Д.).
Итак, VK_8
ключ код обозначает ключ , который может выдавать символы 8
, *
и, возможно, другие в зависимости от локализации клавиатуры.
А 1021 * выделенная клавиша на цифровой клавиатуре - VK_MULTIPLY
- она может выдавать только один символ *
(насколько мне известно).
Вы, вероятно, должны заботиться не о клавише , которую нажал пользователь, а о символе , который произвело это действие пользователя.
Эту информацию вы можете получить с помощью getKeyChar()
, но учтите, что если пользователь нажимает комбинацию Shift 8 , чтобы получить *
, на самом деле это две клавиши ( Shift) и 8 ), и вы получите два события, а первое (для Shift ) даст нечитаемый символ.