2

作为一种自我实践,我正在用 Java 制作一个通过控制台执行 I/O 的BF解释器。在大多数情况下,这很好,但是,正如您可能知道的那样,BF 一次输入一个字符,包括换行符。这意味着据我所知,标准控制台输入库不起作用,因为它们接收整个字符串,然后在最后要求返回。我想,接受下一个适合 a 的击键char 而不在键入时打印它。因此,当 BF 要求输入并且您输入 时a,它会接收 ,a但不会在控制台中显示它,除非 BF 程序a稍后自行输出。

我怎样才能做到这一点?

4

3 回答 3

1

我建议使用 JLine http://jline.sourceforge.net

该类Terminal有一个disableEcho()方法来做你想做的事。

于 2011-11-04T16:52:01.520 回答
0

使用框架中的 textArea 和 keyListener 编写您自己的控制台输出/输入

于 2011-11-04T16:49:32.893 回答
0

签出java.io.Console- 您可以使用readPassword(). 但是它仍然是面向行的,所以在用户按下 Enter 之前你不会收到任何东西。另一个可能的缺点是可能没有控制台 - 取决于应用程序的启动方式。

于 2011-11-04T17:22:17.793 回答