2011-02-25 64 views
1

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

我发现了一些关于下面的键盘事件,

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

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

回答

1

除非应用程序使用特殊的API,否则其控制台输入受控制台驱动程序(用于虚拟控制台,应用程序提供虚拟控制台)的支配。幸运的是,有一个将Java连接到readline或editline API的项目,该项目将提供编辑功能,包括使用向上箭头来检索前一行。请参阅http://java-readline.sourceforge.net/

+0

不幸的是,代码是GPL,所以使用有限,除非许可证是可以接受的。 – Jason 2016-04-28 18:13:31

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 
} 
+0

谢谢:-)是的,我知道这一点,我真正想知道的是如何将最后一个命令字符串作为预输入命令返回到命令行,然后当用户按返回,它将被执行,就像linux终端一样。 – Noah 2011-02-25 19:33:30

+0

您必须自己保存历史记录,例如,“列出历史记录”,并在事件触发时显示例如“history.get(0)”。 – 2011-02-25 19:36:20

+0

但是,它仍然只是将其打印在屏幕上,而不是将其设置为预输入命令?我希望它可以是这样的,在按下向上箭头** >>>上一个命令**之后,用户必须要做的才能运行最后一条命令是按回车键。 – Noah 2011-02-25 19:37:34

相关问题