簡體   English   中英

寫入控制台時在控制台中顯示文本

[英]Display text in console while writing to it

我正在用Java編寫聊天程序。 當用戶向服務器發送消息時,服務器會將消息發送給其他每個用戶。 問題是,當用戶鍵入內容時,他會收到一條消息,該消息將寫在他鍵入的文本中間。

用戶必須始終能夠接收消息,同時必須能夠書寫而不會在他鍵入的消息中出現文本。

用Java有什么辦法嗎? 一個好的解決方案是讓控制台的一部分顯示消息,而另一個僅用於鍵入。

似乎有類似於ncurses的庫,但是有沒有不依賴外部庫的解決方案?

使用ANSI逸出代碼清除控制台無濟於事,因為用戶鍵入的文本可能因此而消失。

您可以創建2個單獨的控制台應用程序(一個讀取,一個僅發送)。 這樣,您的控制台窗口將是獨立的,並且文本不會沖突。 請記住,如果您正在使用會話,則需要將兩個會話都綁定到同一用戶。

另一種解決方案是無需按Enter即可讀取和存儲每個單獨的鍵 當您從另一個客戶端收到響應時,您將手動清除所有內容,打印收到的文本,然后放置用戶直接鍵入的內容。

上面的兩個解決方案似乎都是很棘手的,我認為Swing或JavaFX會是解決之道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM