在控制台应用程序中按下字母'e'停止java程序

时间:2016-09-28 05:03:22

标签: java multithreading io

实际上我正在使用线程同时打印两个名字,我想在按下'e'字母后停止执行。 但我不想按'e'然后按回车键。我只想按下'e'字母来停止。

import java.io.*;
class multithreads{
    public static void main(String[] args) {


        thread4 t1=new thread4("firstname",500,500);

        thread4 t2=new thread4("Secondname",1000,0);

        thread4 t3=new thread4("exit",10,0);


        }
}

class thread4实现了Runnable {

static BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
Thread t;
String name;
int msg='c';
static boolean over=true;
int t1;
int t2;
thread4(String s,int a,int b){
    name=s;
    t1=a;
    t2=b;
    t=new Thread(this,s);
    t.start();

}

public void run(){




    while(over){

    if(name.equals("exit")){


        try{
            msg=in.read();
            try{
            t.sleep(t1);

        }
        catch(InterruptedException e){
            System.out.println(e);
        }



        }catch(Exception eio){
            System.out.println(eio);
        }

        if(msg=='E'){
            over=false; 
        }else{
            msg='c';
        }


    }else{



        try{
            t.sleep(t1);

        }
        catch(InterruptedException e){
            System.out.println(e);
        }

        System.out.print(name);
        for(int j=name.length();j>0;j--){


        System.out.print("\b\b\b"); 
        }
        try{
            t.sleep(t2);

        }
        catch(InterruptedException e){
            System.out.println(e);
        }
        }


        }

    }
}

1 个答案:

答案 0 :(得分:1)

没有这种可能性。我们无法向控制台添加类似键监听器的东西 - 它不是我们的程序。输入数据的唯一方法是点击Enter