Нажмите стрелку вверх и введите последнюю консольную команду Java - PullRequest
1 голос
/ 25 февраля 2011

В настоящее время я работаю над Java-проектом, управляемым консолью.Я хочу реализовать функцию, которая заключается в том, что когда пользователь нажимает стрелку вверх в командной строке моей программы, в командной строке будет отображаться последняя команда, выполненная пользователем.

Я нашел кое-что о событии клавиатуры, как показано ниже,

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

Однако я просто не знаю, как перенести командную строку в командную строку.Например, когда пользователь нажимает «вверх», команда должна вернуть последнюю команду в качестве предварительного ввода в командной строке.

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Если приложение не использует специальный API, его консольный ввод зависит от драйвера консоли (для виртуальной консоли - приложение, предоставляющее виртуальную консоль). К счастью, есть проект для подключения Java к API readline или editline, который предоставит средства редактирования, включая использование стрелки вверх для получения предыдущей строки. См. http://java -readline.sourceforge.net /

0 голосов
/ 25 февраля 2011

Когда пользователь выполняет команду, сохраните ее во временной переменной, используя
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
}
...