实际上我正在使用线程同时打印两个名字,我想在按下'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);
}
}
}
}
}
答案 0 :(得分:1)
没有这种可能性。我们无法向控制台添加类似键监听器的东西 - 它不是我们的程序。输入数据的唯一方法是点击Enter
。