Расширенный ввод с консоли Java
В качестве самостоятельной практики я делаю BF- интерпретатор на Java, который выполняет ввод-вывод через консоль. По большей части это нормально, однако, как вы, наверное, знаете, BF принимает ввод по одному символу за раз, включая переводы строки. Это означает, что, насколько я знаю, стандартные консольные библиотеки ввода не будут работать, потому что они принимают целые строки и затем запрашивают возврат в конце. я хочу ,
принять в следующем нажатии клавиши, которая вписывается в char
без печати, когда это напечатано. Поэтому, когда BF запрашивает ввод, и вы вводите a
, занимает в a
но не показывает это в консоли, если программа BF не выводит a
Сам позже.
Как я могу это сделать?
3 ответа
Я предлагаю использовать JLine http://jline.sourceforge.net/
Terminal
класс имеет disableEcho()
способ делать то, что вы хотите.
Проверять, выписываться java.io.Console
- вы можете прочитать строку без эхо с readPassword()
, Он по-прежнему ориентирован на линию, поэтому вы ничего не получите, пока пользователь не нажмет Enter. Другим возможным недостатком является то, что консоли может не быть - это зависит от способа запуска приложения.
Напишите свой собственный вывод / ввод с консоли, используя textArea во фрейме и keyListener