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

时间:2011-02-25 19:25:46

标签: java console-application arrow-keys

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

我发现了一些键盘事件,如下所示,

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

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

2 个答案:

答案 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
}