2013-05-18 8 views
2

Есть ли способ проверить, вводит ли пользователь в окне консоли в Java? Моя программа печатает информацию, которую он получает о клиентских подключениях, используя System.out.print(), и я хочу, чтобы она временно приостановила печать информации во время ввода пользователем. Пользовательский ввод считывается в отдельном потоке с использованием класса Scanner. Мне нужно уметь видеть, что пользователь набрал что-нибудь и все еще имеет то, что пользователь набрал (если есть), доступный для сканера. Если это возможно, я бы хотел избежать использования внешних библиотек и просто придерживаться библиотек java.Проверка Java, если пользователь вводит в консоль

ответ

2

Нет, нет способов сделать это напрямую с помощью консоли (о которой я знаю) - содержимое консоли будет отправлено только в приложение после нажатия на кнопку, и затем будет доступно для Scanner ,

Один из способов решения этой проблемы - создать собственную консоль, которую вы можете читать и писать. Тогда вы сможете делать все, что хотите (в том числе проверить, подсвечено ли что-либо и т. Д.). Если вы не знаете, как кодировать графический интерфейс, вы должны изучить это. Oracle имеет tutorial на графическом интерфейсе с Swing.

+0

Хорошо. Я займусь этим. Благодаря! – jakeprogrammer

0

Поток, который прослушивает пользовательскую консоль, генерирует прерывание, когда пользователь начинает печатать, а другой поток, который печатает информацию, нуждается в сбросе прерывания, все, что вам нужно сделать, это реализовать сценарий.

0

Я думаю, что вы ищете Thread.sleep(milliseconds);. Используя это, пока пользователь не будет выполнен, вы должны получить то, что хотите.

В следующий раз, пожалуйста, уточните свои вопросы.

+0

Я знаю, что я бы сделал поток ждать печати информации. Я спрашивал, есть ли способ проверить, набирает ли пользователь консоль. – jakeprogrammer

Смежные вопросы