首页 > 解决方案 > 如何使用缓冲阅读器将预先确定的文本设置为用户输入?

问题描述

基本上,我将如何要求用户输入从一开始就给出一个默认值供用户编辑。例如。要求用户在已在文本字段中输入默认值“1”时提供值。

标签: java

解决方案


在 BufferedReader 上调用该readLine()方法不会创建类似于 GUI 应用程序中的文本输入的“文本字段”。

理论上,您可以使用RawConsoleInput 之类的库来实现您想要做的事情。您必须编写一个方法来跟踪字符堆栈中的“输入”,该字符堆栈已初始化为包含默认值。然后打印默认值,并一一读取按键:

  • 对于大多数按键操作,将按下的按键压入堆栈,然后将其打印出来,使其出现在控制台上。
  • 当按下退格键时,从堆栈中弹出并打印\b转义序列以在控制台中模拟退格。
  • 在回车键上,停止读取按键,打印\n并将堆栈内容作为字符串返回。

该解决方案将不兼容跨平台,因为没有跨平台的方式来进行非行缓冲控制台输入,并且某些控制台(例如 Eclipse 内置的控制台)不能\b正确处理。

拥有默认选项的更简单且几乎可以肯定更好的方法就是告诉用户默认选项是什么,然后让他们在不输入任何内容的情况下按“输入”来获得默认选项。


推荐阅读