Для тех, кто сталкивается с Google и т. Д., Вот решение, которое я наконец нашел.
(Это решение для второй части моего вопроса, как захватить ввод без TextComponent).
Я следовал этому руководству и прикрепил KeyListener к моей программе. Это позволило мне собирать и анализировать ввод, хотя довольно неловко. Мне еще предстоит найти более плавное решение этой проблемы.
Я могу вернуться и добавить код к этому. Пожалуйста, оставьте комментарий, если я еще не сделал этого, и вы найдете это полезным