Пользовательский интерфейс консоли, управляемый событиями

#java #user-interface #console

#java #пользовательский интерфейс #консоль

Вопрос:

Я пишу серверно-клиентское приложение с пользовательским интерфейсом на основе консоли (на стороне клиента). Пользователь получает приглашение и имеет возможность вводить команды. Кроме того, время от времени сервер отправляет сообщение, информацию о котором клиент должен обработать и распечатать. Не могли бы вы дать мне совет относительно того, как приступить к моделированию / реализации этого типа пользовательского интерфейса или поделиться ссылкой на учебное пособие?

Ответ №1:

Для задач, связанных с подсказками, я предлагаю jline, он предоставляет историю, автозаполнение и т. Д…

Другие соображения могут включать: насколько сложны команды? Набросайте немного грамматики. Вам нужен правильный синтаксический анализатор для их реализации, или достаточно регулярных выражений? Даже если вам нужен синтаксический анализатор, подходит ли какой-нибудь рукописный для этой работы?

Как связаны клиент и сервер? Какой протокол находится между ними? Проект спецификации того, что может быть установлено каждым способом. Я бы рекомендовал Netty для реализации сетевых протоколов, но, возможно, вы могли бы использовать некоторые из готовых RPC (Protobuff, Thrift, Avro)

Какая часть работы выполняется где? Создание клиента как легкого, вероятно, хорошая идея, но, возможно, некоторые соображения производительности / пропускной способности требуют немного более умного клиента?

Ответ №2:

Может быть, эта библиотека — http://www.pitman.co.za/projects/charva/index.html это может быть интересно для вас.