Guten Morgen zusammen.
Ich bin gerade dabei ein Programm zu schreiben, dass ein Zahlungssystem für eine Waschanlage sein soll. Es funktioniert soweit auch alles ganz gut.
Es können die diversen Waschprogramme in einer GUI ausgewählt und gestartet werden. Nach dem Auswählen eines Waschprogrammes öffnet sich ein Pop Up Fenster, in dem der ganze Zahlungsvorgang dargestellt wird.
Die Eingaben der Werte kommen von externer Quelle. Diese simuliere ich im Moment noch über die Konsole.
Ich habe bei dem Pop Up Fenster auch einen Abbruch Button implementiert. Es könnte ja sein, dass es sich jemand auf einmal anders überlegt und das Programm doch nicht starten möchte.
Dieser Sieht wie Folgt aus (Code ist nicht vollständig):
Ich starte einen neuen Thread, in dem die while - Schleife solange durchlaufen wird, bis das ganze Geld einbezahlt wurde.
Die Methode
wartet auf eine Eingabe. Hier treten auch die Probleme auf.
Mein Abbruch Button sieht wiefolgt aus:
Im Prinzip funktioniert das ganz gut. Leider bleibt die Methode
am laufen. Was bedeutet, dass die nächste Eingabe für den bereits abgebrochenen Vorgang zählt.
Gibt es eine Möglichkeit dies zu umgehen? Oder vielleicht der Methode während des Abbruches einen letzten Wert zu senden?
Vielen Dank im Voraus für eure Bemühungen
Gruss
Proteus
Ich bin gerade dabei ein Programm zu schreiben, dass ein Zahlungssystem für eine Waschanlage sein soll. Es funktioniert soweit auch alles ganz gut.
Es können die diversen Waschprogramme in einer GUI ausgewählt und gestartet werden. Nach dem Auswählen eines Waschprogrammes öffnet sich ein Pop Up Fenster, in dem der ganze Zahlungsvorgang dargestellt wird.
Die Eingaben der Werte kommen von externer Quelle. Diese simuliere ich im Moment noch über die Konsole.
Ich habe bei dem Pop Up Fenster auch einen Abbruch Button implementiert. Es könnte ja sein, dass es sich jemand auf einmal anders überlegt und das Programm doch nicht starten möchte.
Dieser Sieht wie Folgt aus (Code ist nicht vollständig):
Ich starte einen neuen Thread, in dem die while - Schleife solange durchlaufen wird, bis das ganze Geld einbezahlt wurde.
Java:
Thread moneyInputThread = new Thread() {
@Override
public void run() {
while (temporaryCosts > 0) {
temporaryCosts -= washProgramMoneyInput.readInput();
}
};
moneyInputThread.start();
Die Methode
Code:
readInput()
Mein Abbruch Button sieht wiefolgt aus:
Java:
public void actionPerformed(ActionEvent e) {
stopWashProgram(); // Rückzahlung des bereits bezahlten Betrages
moneyInputThread.interrupt(); // Bricht den Thread ab.
setInvisible(); // ruft frame.dispose(); auf
}
Im Prinzip funktioniert das ganz gut. Leider bleibt die Methode
Code:
readInput()
Gibt es eine Möglichkeit dies zu umgehen? Oder vielleicht der Methode während des Abbruches einen letzten Wert zu senden?
Vielen Dank im Voraus für eure Bemühungen
Gruss
Proteus