目前,我正处于一个Java项目中,该项目采用控制台驱动。我想实现一个功能,当用户在程序的命令行中按下箭头时,命令行将显示用户运行的最后一个命令。
我发现了一些键盘事件,如下所示,
public void keyPressed(KeyEvent evt);
public void keyReleased(KeyEvent evt);
public void keyTyped(KeyEvent evt);
但是,我只是不知道如何将命令字符串带到命令行。例如,当用户按下“向上”时,该命令应该将最后一个命令作为命令行上的预输入返回。
答案 0 :(得分:1)
除非应用程序使用特殊API,否则其控制台输入受控制台驱动程序的支配(对于虚拟控制台,提供虚拟控制台的应用程序)。幸运的是,有一个项目将Java连接到readline或editline API,它将提供编辑功能,包括使用向上箭头检索上一行。见http://java-readline.sourceforge.net/
答案 1 :(得分:0)
当用户执行命令时,使用
将其存储在临时变量中
public void keyPressed(KeyEvent evt);
当用户按下向上键时,将该变量中的值显示到屏幕
示例代码:
public void executeCommand(String command){
temp = command;
// your code
}
public void keyPressed(KeyEvent evt){
//display the value in the temp variable to screen
}