Hallo zusammen,
ich würde sehr gerne eine Endlosschleife in einem Thread über eine Taste abbrechen doch ich bekomme es leider nicht hin.
Habe zwei Klassen die sehen wie folgt aus:
Nun dachte ich in der Main Klasse eine Innere Klasse zu machen die so aussieht:
Jetzt wollte ich sehr gerne wenn man in der Main sagt Endlosschleife das ich diese Klasse nutzen könnte doch das klappt so nicht :-(
Leider war ich mal wieder eine längere Zeit Krank und hab gerade das Gefühl man fängt wieder bei NULL an 🙁
ich würde sehr gerne eine Endlosschleife in einem Thread über eine Taste abbrechen doch ich bekomme es leider nicht hin.
Habe zwei Klassen die sehen wie folgt aus:
Java:
public class Barrier extends Thread {
private String name;
private int open, close;
Barrier(String name, int open, int close) {
this.name = name;
this.open = open;
this.close = close;
}
int getOpen() {
return open;
}
int getClose() {
return close;
}
String getBarrier() {
return name;
}
void setOpen(int open) {
this.open = open;
}
void setClose(int close) {
this.close = close;
}
void setBarrier(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 10; i++) {
try {
System.out.println("Barrier " + getBarrier() + ": Start Opening");
sleep(80);
System.out.println("Barrier " + getBarrier() + ": End Opening");
sleep(getOpen());
System.out.println("Barrier " + getBarrier() + ": Start Closing");
sleep(60);
System.out.println("Barrier " + getBarrier() + ": End Closing");
sleep(getClose());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Java:
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("Soll das Programm in Endlosschleife gestartet werden?");
boolean endless = s.nextBoolean();
if (!endless) {
System.out.println("Bitte geben Sie die Anzahl der Ausfahren ein: ");
try {
int anz = s.nextInt();
Barrier[] barriers = new Barrier[anz];
for (int i = 0; i < anz; i++) {
System.out.println("Wartezeit (Ausfahrt" + (i + 1) + ") geoeffnet in s: ");
int open = s.nextInt();
System.out.println("Wartezeit (Ausfahrt" + (i + 1) + ")geschlossen in s: ");
int close = s.nextInt();
barriers[i] = new Barrier(Integer.toString(i + 1), open, close);
}
for (int i = 0; i < anz; i++) {
barriers[i].start();
}
} catch (Exception x) {
x.printStackTrace();
}
}
s.close();
}
}
Nun dachte ich in der Main Klasse eine Innere Klasse zu machen die so aussieht:
Java:
class Breakk extends Thread {
BufferedReader br;
public Breakk() {
br = new BufferedReader(new InputStreamReader(System.in));
}
public void run() {
char c = 0;
while(c != ' ') {
try {
c = (char)br.read();
}
catch(IOException e) {
System.out.println("Fehler beim Lesen von der Tastatur!");
}
}
System.exit(0);
}
}
Jetzt wollte ich sehr gerne wenn man in der Main sagt Endlosschleife das ich diese Klasse nutzen könnte doch das klappt so nicht :-(
Leider war ich mal wieder eine längere Zeit Krank und hab gerade das Gefühl man fängt wieder bei NULL an 🙁