gpt4 book ai didi

Java 停止程序执行,直到用户在命令提示符中输入任何输入

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:17 25 4
gpt4 key购买 nike

我正在制作一个严格的命令提示符程序,在某些时候我想暂停其执行,直到用户按下键盘上的某个键(无论哪个键)。

到目前为止我尝试过这个:

char cont =sc.next().charAt(0);
while(cont !=' ') {
try{
Thread.currentThread().sleep(1);
} catch(Exception e) {
System.out.println(e);
}
cont = sc.next().charAt(0);
}

在这种情况下,我想要“空格”来恢复执行,但我宁愿让任何输入都可以达到目的。

编辑:更具体地说,我希望程序在按下任何键时立即恢复,而不让用户看到他作为输入提供的内容。

最佳答案

首先,你不需要做Thread.currentThread().sleep(1);用于暂停线程流。因为当程序等待用户输入输入时,它会自动暂停。

不要使用 char 变量,而是使用 String 变量(与扫描器类一起使用更容易)并删除

try{
Thread.currentThread().sleep(1);
} catch(Exception e) {
System.out.println(e);
}

因为没有必要。这是对我有用的代码:

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String cont = input.nextLine();
while(!cont.equals(" ")) {

cont = input.nextLine();

}

}

其他解决方案(尽管更复杂)是创建一个 Frame 并向其添加一个 KeyListener(这样当按下空格键时,用户将看不到任何内容,程序将立即执行)。

class frame extends JFrame{

frame(){

addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {

}

@Override
public void keyPressed(KeyEvent e) {

if(e.getExtendedKeyCode() == KeyEvent.VK_SPACE){

//insert here the code you'd like to be executed when the user introduces a spacebar

}

}

@Override
public void keyReleased(KeyEvent e) {

}
});
setVisible(true);
}

}

关于Java 停止程序执行,直到用户在命令提示符中输入任何输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48136525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com