Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi Leute,
ich hab ein Problem, wobei mir langsam echt die Haare zu Berge stehen.
Also ich hab mein Programm/Problem mal vereinfacht um hier nicht ausschweifend zu werden.
Anforderung:
Das Programm soll 10Sekunden laufen und alle 2Sekunden eine Meldung ausgeben, wenn es noch läuft. Soweit so gut das ist nicht das Thema, aber wie bekomm ich es hin, dass ich über die Konsole "ende" eingebe und das Programm vor den 10Sekunden endet. Zu beachten ist dann aber, dass die Meldung trotzdem alle 2 Sekunden erscheint. Wäre echt super wenn mir jemand nen Tipp und nen Lösungshinweis geben könnte!!!
Mein bisheriger Quellcode:
Code:
public class timeProg extends Thread {
String ausgabe = "Programmlauf, Meldung erfolgt alle 2sec.";
public void run(){
while(true){
if(isInterrupted()){
break;
}
printLine(ausgabe);
}
}
private void printLine (String ausgabe){
System.out.println(ausgabe);
try{
Thread.sleep(2000);
}
catch (InterruptedException e){
interrupt();
}
}
public static void main(String[] args) {
timeProg time = new timeProg();
time.start();
try{
Thread.sleep(10000);
}
catch (InterruptedException e){
System.out.println("Ende");
}
time.interrupt();
}
}
Ok vielleicht war die Formulierung ein bisschen unglücklich gewählt. Das Programm soll zwei Möglichkeiten haben zu beenden:
1. Es läuft die 10Sekunden durch und alle 2 Sekunden kommt die Meldung.
2. Man gibt über die Konsole "ende" ein und es beendet sofort ohne die 10 Sekunden durchzulaufen, jedoch bis zum Konsolenende soll die Meldung trotzdem alle 2 Sekunden erfolgen.
Ich hab grad ne göttliche Eingebung bekommen und es läuft jetzt, trotzdem dank dir!!! Vielleicht könnte mir einer sagen wie ich jetzt nur noch das Häckchen setze!
Hier noch der Quellcode:
Code:
public class timeProg extends Thread {
String ausgabe = "Programmlauf, Meldung erfolgt alle 2sec.";
public void run(){
while(true){
if(isInterrupted()){
break;
}
printLine(ausgabe);
}
}
private void printLine (String ausgabe){
System.out.println(ausgabe);
try{
Thread.sleep(2000);
}
catch (InterruptedException e){
interrupt();
}
}
public static void main(String[] args) {
timeProg time = new timeProg();
time.start();
abEnd();
try{
Thread.sleep(10000);
}
catch (InterruptedException e){
System.out.println("Ende");
}
time.interrupt();
}
public static void abEnd(){
String text = console.readString();
if(text.equals("exit")){
System.out.println("ENDE");
System.exit(0);
}
}
}