按向上箭头键并显示最后一个Java控制台命令

按向上箭头键并显示最后一个Java控制台命令,java,console-application,arrow-keys,Java,Console Application,Arrow Keys,目前我在一个Java项目上,它是控制台驱动的。我想实现一个功能,当用户在我的程序的命令行中按下向上箭头时,命令行将显示用户运行的最后一个命令 我发现了一些关于键盘事件的信息,如下所示 public void keyPressed(KeyEvent evt); public void keyReleased(KeyEvent evt); public void keyTyped(KeyEvent evt); 但是,我只是不知道如何将命令字符串带到命令行。例如,当用户按下“向上”键时,该命令应将最

目前我在一个Java项目上,它是控制台驱动的。我想实现一个功能,当用户在我的程序的命令行中按下向上箭头时,命令行将显示用户运行的最后一个命令

我发现了一些关于键盘事件的信息,如下所示

public void keyPressed(KeyEvent evt);
public void keyReleased(KeyEvent evt);
public void keyTyped(KeyEvent evt);

但是,我只是不知道如何将命令字符串带到命令行。例如,当用户按下“向上”键时,该命令应将最后一个命令作为预输入带回命令行。

当用户执行命令时,使用
按下公共无效键(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
}

除非应用程序使用特殊的API,否则其控制台输入由控制台驱动程序决定(对于虚拟控制台,指提供虚拟控制台的应用程序)。幸运的是,有一个将Java连接到readline或EditLineAPI的项目,它将提供编辑功能,包括使用向上箭头检索前一行。请参见

谢谢:-)是的,我知道这一点,我想真正了解的是如何将最后一个命令字符串作为预输入命令带回命令行,然后当用户按return时,它将被执行,就像linux终端一样。您必须自己保存历史记录,例如,
列出历史记录
,并显示例如。,
history.get(0)
当事件触发时。但是,是否仍然只是在屏幕上打印它,而不是将其设置为预输入命令?我希望它可以是这样的,在按下向上箭头>>>最后一个命令后,用户要运行最后一个命令所要做的就是按下return。不幸的是,该代码是GPL,因此除了许可证可以接受的地方外,它的使用是有限的。