Мы заменяем устаревшее приложение C, изначально написанное для MSDOS (да, верите или нет!).Это приложение использует специально переназначенную клавиатуру, которая перехватывает прерывание клавиатуры DOS (помните, что ??!), Чтобы иногда изменять коды сканирования клавиш, нажимаемых пользователем, чтобы происходила различная обработка.Затем на клавиши были нанесены специальные метки, сообщающие пользователям «новое» значение этих клавиш.
Новая версия Java требуется для сохранения этой раскладки клавиатуры, с которой целевая группа пользователей хорошо знакома.
Пример того, что мы пытаемся сделать, таков:
Возможно, вы никогда не задумывались об этом, но цифровая клавиатура современного телефона противоположна цифровой клавиатуре компьютерной клавиатуры.На первом 1-2-3 находится в верхнем ряду, а на втором - в нижнем ряду.Мы должны сделать так, чтобы цифровая клавиатура была похожа на телефон.Скажем, когда пользователь набирает «7» на цифровой клавиатуре, мы хотим, чтобы он выглядел так, как будто он набрал «1», когда он набирает «8», мы хотим «2», когда он набирает «3»нам нужна цифра "9".
Нам нужно сделать гораздо больше, чтобы эмулировать DOS-приложение, но сейчас мы даже не можем решить этот простой случай.Я прошел через связывание ключей, KeyAdapters, KeyListeners и даже KeyEventDispatchers, и я не могу сделать эту работу.Я почти уверен, что нам нужно работать на самом низком уровне, который нам позволяет Java, чтобы максимально приблизиться к тому, что делает унаследованное приложение.И, разумеется, мы хотим, чтобы реализация была максимально чистой, чтобы код уровня приложения не был завален входными картами, ActionMaps и т. Д. В максимально возможной степени это необходимо обрабатывать глобально.Кто-нибудь может помочь?