# Programm durch Tastendruck beenden



## kolio (5. Mai 2007)

Hallo Zusammen

Folgendes Programm sollte durch Tastendruck beendet werden.
Weiss jemand wie man da eine KeyListener-Funktion einbauen kann,
die das Programm beim drücken der ESC-Taste beendet.
Bringe es einfach nicht fertig, habe es schon den ganzen Nachmittag lang
probiert. Vielen Dank für eure Hilfe.



```
import java.awt.*; 
import java.awt.event.*;
import java.io.*;

public class Primenumbers
{

public static void main ( String[] args ) throws IOException 
{
boolean stop=false;
double potprim,teiler,geteiltes,check,checkk;
potprim=5;
teiler=3;
geteiltes=1;
check=1;
checkk=1;

//endlosschlaufe
while(1<2)
	{    
	geteiltes=(potprim/teiler);
	if((Math.ceil(geteiltes))==geteiltes)
	{
	check=2;
	checkk=1;
	}
	else
	{
		if((teiler*teiler)>=potprim)
		{
		check=2;
		checkk=2;
		}
		else
  		{
  		check=1;
  		checkk=1;
  		}
  	}
  	if(checkk==2)
  		{
  		System.out.println(potprim + " is a primenumber");
  		potprim=potprim+2;
  		teiler=3;
  		check=1;
  		checkk=1;
  		}
  	else
  		{
  		if(check==2)
  			{
  			potprim=potprim+2;
  			teiler=3;
  			}  
  		else
  			{
  			teiler=teiler+2;
  			}						
  		}
//verzögerung
try 
{
Thread.sleep(100);
}
catch (InterruptedException e) 
{}		
  	}
}
}
```


----------



## Wildcard (6. Mai 2007)

Bei einer reinen Konsolenanwendung mit Java geht das nicht (ohne externe libs).


----------



## nebulo (6. Mai 2007)

Ich bin mir zwar nicht sicher, ob es wirklich nicht mit einem KeyListener geht, aber mit einem Thread der in einer while-Schleife einfach den entsprechenden keycode abwartet und dann die anwendung stoppt müsste es aufjedenfall gehen. 

gruß nebulo


----------



## Wildcard (6. Mai 2007)

Nein, weil du den Stream nicht direkt auslesen kannst. Vom stdIn bekommt man nur zeilenweise Eingaben (nach return).
Mit JCurses könnte es gehen, aber wie gesagt nicht ohne lib.


----------



## mephi (6. Mai 2007)

strg+c ? klappt das? oder muss es die esc-taste sein?


----------

