Я пишу текстовый редактор с подсветкой синтаксиса на Java, и у меня возникла небольшая проблема с тем, что я должен делать, а не с тем, что я хочу делать.По сути, класс KeyEvent предоставляет мне небольшую проблему:
- KeyTyped не позволяет мне определить, что это за ключ, поэтому он бесполезен для лексизма.
- KeyPressed лучше,это позволяет мне идентифицировать каждую клавишу при нажатии, что отлично подходит для лексизма, однако запускает событие до того, как клавиша будет фактически помещена в JEditorPane.
- KeyReleased решает проблему как KeyPressed, так и KeyTyped, как это происходитпосле ввода символа, и это позволяет мне фактически идентифицировать, что это за персонаж.Однако, если я удерживаю «а», и он вставляет 50 «а», я облажался.
Мое решение проблемы состоит в том, чтобы использовать KeyPressed для всех символов, которые должны быть введены, использовать событие, прочитайте символ, который должен был быть введен, и введите его вручную, однако я предполагаю, что это не самое элегантное из доступных решений.Мой вопрос, как еще я мог пойти по этому поводу?Есть ли что-то, над чем я остекленю, или я нашел решение своей проблемы и должен просто катиться с этим?