【问题标题】:Display text in console while writing to it写入时在控制台中显示文本
【发布时间】:2018-07-13 20:04:20
【问题描述】:

我正在用 Java 制作一个聊天程序。当用户向服务器发送消息时,服务器将该消息发送给所有其他用户。问题是,当用户键入时,他会收到一条消息,该消息将写在他正在键入的文本的中间。

用户必须始终能够接收消息,同时能够在他输入的消息中不出现文本的情况下进行书写。

有没有办法在 Java 中做到这一点?一个好的解决方案是让控制台的一部分显示消息,而另一部分仅用于输入。

貌似有类似ncurses的库,但是有没有不依赖外部库的解决方案?

使用 ANSI 转义码清理控制台无济于事,因为用户输入的文本可能会因此而消失。

【问题讨论】:

    标签: java client-server rmi instant-messaging


    【解决方案1】:

    您可以创建 2 个单独的控制台应用程序(一个用于读取,一个用于发送)。这样,您的控制台窗口将是独立的,并且文本不会发生冲突。请记住,如果您使用会话,则需要将两个会话绑定到同一个用户。

    另一个解决方案可能是reading and storing each individual key without pressing enter。当您收到来自其他客户端的响应时,您手动清除所有内容,打印收到的文本,然后将用户输入的内容直接放在后面。

    上述两种解决方案看起来都很老套,我觉得 Swing 或 JavaFX 会是不错的选择。

    【讨论】:

    • 谢谢,我看看这个。
    猜你喜欢
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多