使用lanterna包中的readInput()方法时遇到问题。我的代码分数
Terminal terminal = TerminalFacade.createSwingTerminal();
terminal.enterPrivateMode();
Key key = terminal.readInput();
if(key.getKind()==Key.Kind.Escape){
terminal.moveCursor(6, 6);
terminal.putCharacter('X');
不允许我在终端中进行任何输入,因此在检查key.getKind时会创建nullpointerexception。有人知道为什么会这样吗?
答案 0 :(得分:2)
readInput
方法是非阻止的。这意味着它不会挂起,直到找到输入(如Scanner
那样)。因此,您需要自己的"阻止方法"等待输入:
Key key = terminal.readInput();
while(key == null) {
Thread.sleep(5); //whatever low value
key = terminal.readInput();
}
// here key will not be null, so no NullPointerException