Java 如何退出跑步计划?

Java 如何退出跑步计划?,java,bluej,Java,Bluej,如何为ESC分配变量。按键,以便按下时程序关闭? 我正在做一个计算器,我见过的唯一方法就是直接像这样做: Scanner console = new Scanner(System.in); int x = 1; while(x==1) {... System.out.println("Enter in -1 to exit program"); x = nextInt(); } 我不知道是否可以分配,比如说a-1到退出键。如果你有任何想法,请告诉我?这在天文学上是值得赞赏的。;-…:-) 我

如何为ESC分配变量。按键,以便按下时程序关闭? 我正在做一个计算器,我见过的唯一方法就是直接像这样做:

Scanner console = new Scanner(System.in); 
int x = 1;
while(x==1)
{...
System.out.println("Enter in -1 to exit program");
x = nextInt();
}

我不知道是否可以分配,比如说a-1到退出键。如果你有任何想法,请告诉我?这在天文学上是值得赞赏的。;-…:-)

我使用一个好的库已经有很长时间了,所以如果你能使用这个库,你可以很容易地解决这个问题

以下是一个例子:

import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;

public class TestEscKey implements NativeKeyListener{

    @Override
    public void nativeKeyPressed(NativeKeyEvent nke) {
        if(NativeKeyEvent.getKeyText(nke.getKeyCode()).equals("Echap")){
            System.out.println("I will exit!");
            System.exit(0);
        }else{
           //do another thing
        }
    }

    @Override
    public void nativeKeyReleased(NativeKeyEvent nke) {
    }

    @Override
    public void nativeKeyTyped(NativeKeyEvent nke) {
    }

    public static void main(String[] args) throws NativeHookException {
        try {

            GlobalScreen.registerNativeHook();
        } catch (NativeHookException ex) {
            System.out.println("There was a problem registering the native hook.\n" 
                                + ex.getMessage());
            System.exit(1);
        }
        GlobalScreen.getInstance().addNativeKeyListener(new TestEscKey());
    }
}

我使用一个好的库已经有很长一段时间了,所以若你们能使用这个库,你们可以很容易地解决这个问题

以下是一个例子:

import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;

public class TestEscKey implements NativeKeyListener{

    @Override
    public void nativeKeyPressed(NativeKeyEvent nke) {
        if(NativeKeyEvent.getKeyText(nke.getKeyCode()).equals("Echap")){
            System.out.println("I will exit!");
            System.exit(0);
        }else{
           //do another thing
        }
    }

    @Override
    public void nativeKeyReleased(NativeKeyEvent nke) {
    }

    @Override
    public void nativeKeyTyped(NativeKeyEvent nke) {
    }

    public static void main(String[] args) throws NativeHookException {
        try {

            GlobalScreen.registerNativeHook();
        } catch (NativeHookException ex) {
            System.out.println("There was a problem registering the native hook.\n" 
                                + ex.getMessage());
            System.exit(1);
        }
        GlobalScreen.getInstance().addNativeKeyListener(new TestEscKey());
    }
}

不幸的是,你不能

扫描仪无法读取ESC。您应该通过UI库(例如Swing)使用键侦听器。看一看


在这种情况下,您应该向用户请求一个数字,该数字是循环中断的关键(就像您实际做的那样)。

不幸的是,您不能

扫描仪无法读取ESC。您应该通过UI库(例如Swing)使用键侦听器。看一看


在这种情况下,你应该向用户索要一个数字,这是循环中断的关键(就像你实际做的那样)。

所有必要的导入都已经完成,只是为了让它不碍事……就是这样,谢谢@baao我的天文数字感谢你!!即使你没有得到身体上的奖杯,这篇文章也没有用,谢谢所有必要的进口都已经完成了,只是为了让它不碍事……就是这样,谢谢@baao我的天文数字感谢你!!即使你没有得到身体上的奖杯,这篇文章也没有用,谢谢什么@S.Nary?第一个覆盖通过第二个覆盖做了什么,这对我来说是全新的?这是接口
NativeKeyListener
中方法的实现,所以你必须下载jar,然后在你的项目中像任何jar或依赖项一样使用它是新的,但如果你能正确使用它就可以了@S.NaryAlright谢谢,我试试看,@YCF_L.Hey,这些软件包和BlueJ一起工作吗?什么@S.Nary?第一个覆盖通过第二个覆盖做了什么,这对我来说是全新的?这是接口
NativeKeyListener
中方法的实现,所以你必须下载jar,然后在你的项目中像任何jar或依赖项一样使用它是新的,但如果你能正确使用它就可以了@S.NaryAlright谢谢,我试试看,@YCF_L.Hey,这些软件包和BlueJ一起工作吗?