Java 如果按下键盘,JOptionPane将中断扫描仪输入

Java 如果按下键盘,JOptionPane将中断扫描仪输入,java,swing,keyboard,java.util.scanner,joptionpane,Java,Swing,Keyboard,Java.util.scanner,Joptionpane,我已将问题简化为下面的代码 运行时,您会看到一条消息 如果使用鼠标并单击“确定”,则可以继续键入新命令 如果按键盘上的“回车”或“空格”,则键盘输入中断。也就是说,可以在命令行中键入内容,但“return”不起任何作用 import java.io.IOException; import java.util.Scanner; import javax.swing.JOptionPane; public class MainClass { public static void main

我已将问题简化为下面的代码

运行时,您会看到一条消息

如果使用鼠标并单击“确定”,则可以继续键入新命令

如果按键盘上的“回车”或“空格”,则键盘输入中断。也就是说,可以在命令行中键入内容,但“return”不起任何作用

import java.io.IOException;
import java.util.Scanner;
import javax.swing.JOptionPane;

public class MainClass {

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        while(true){
            System.out.println("hello, please enter your command");
            String UsrCmd = sc.nextLine();
            System.out.println("you tyep: " + UsrCmd);

            JOptionPane.showMessageDialog (null,"Dialog Text","Title Text",JOptionPane.QUESTION_MESSAGE);

            //Work around for Linux users:
            //Runtime.getRuntime().exec("/usr/bin/zenity --info --text='hello'");
        }
    }
}
(我是S.o.f.的新手。我提前为我的错误道歉。请纠正我的错误。谢谢)


JR 1.7 Fedor 20 64位。

它应该正常工作,因为您没有任何语句可以停止while执行或中断;指挥部。但是,我建议您使用JDK(java developer kit)而不是JRE。

我测试您的代码时,您的代码对我来说很好。它应该可以工作,但根据OP的说法是不行的。在评论中向他提问,比如您是否在自己的系统上尝试过代码(哪一个?)。如果他编译Java代码,我猜他有JDK。对不起,我还不能在其他帖子中发表评论,因为我没有必要的声誉。然而,这个答案的意思是,这不是一个代码问题,而是一个软件问题(可能是操作系统)。我用JDK1.7.045测试了自己的代码,它运行良好。我的操作系统是Windows7x64。我尝试过JDK和JRE,不幸的是两者的结果都是一样的。