Hallo, ich habe ein Programm erstellt, was durch ein Passwort geschützt ist. Man hat drei Versuche das richtige Passwort einzutippen, falls alle Versuche falsch sind wird ein Countdown von 2 Minuten gestartet, wo man das Passwort nicht eintippen kann. Nach den 2 Minuten hat man dann wieder 3 Versuche und kann das Passwort eintippen. Nun kann man aber natürlich auch einfach die App schließen und wieder starten und sofort hat man wieder alle drei Versuche. Kann man das irgendwie ändern, das immer wenn das Programm gestartet wird, geprüft wird, wie viele Versuche noch vom letzten mal übrig waren und man dann auch nur die Versuche wieder hat, bzw. das dann der Countdown weiterläuft, wo er davor unterbrochen worde.
Bitte beschreibt genau eure Idee und zeigt mir dafür den ganzen neuen/bearbeiteten Code(auch was importiert wird)!
Ps: Bin noch nicht so lange mit Java unterwegs.
Vielen dank für eure Ideen und Lösungen!
Bitte beschreibt genau eure Idee und zeigt mir dafür den ganzen neuen/bearbeiteten Code(auch was importiert wird)!
Ps: Bin noch nicht so lange mit Java unterwegs.
Vielen dank für eure Ideen und Lösungen!
Java:
prufen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String pseingabe = textfeld.getText();
if (pseingabe.equals("...")) { //Hier kann man das Passwort ändern.
textfeld.setText("");
textfeld.setVisible(false);
eingabe.setVisible(false);
prufen.setVisible(false);
falsch.setVisible(false);
//.......Eigentliche Funktion des Programmes wird gestartet
} else {
textfeld.setText("");
versuche--;
if (versuche == 1) {
falsch.setText("Falsches Passwort! Noch "+versuche+" Versuch.");
falsch.setBounds(140, 120, 600, 20);
falsch.setVisible(true);
}
if (versuche == 2) {
falsch.setText("Falsches Passwort! Noch " + versuche + " Versuche.");
falsch.setBounds(140, 120, 600, 20);
falsch.setVisible(true);
}
if (versuche == 0) {
versuche = 3;
textfeld.setVisible(false);
prufen.setVisible(false);
eingabe.setVisible(false);
falsch.setText("Falsches Passwort! Zu viele falsche Versuche!");
falsch.setBounds(100, 120, 600, 20);
falsch.setVisible(true);
minuten = 2;
sekunden = 0;
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
zeittext.setText("02:00 min");
zeittext.setVisible(true);
if (sekunden == 0 && minuten == 0) {
zeittext.setText(String.format("%02d:%02d min", minuten, sekunden));
((Timer) e.getSource()).stop();
falsch.setVisible(false);
zeittext.setVisible(false);
textfeld.setVisible(true);
prufen.setVisible(true);
eingabe.setVisible(true);
}
if (sekunden == 0) {
minuten--;
sekunden = 59;
zeittext.setText(String.format("%02d:%02d min", minuten, sekunden));
} else {
sekunden--;
zeittext.setText(String.format("%02d:%02d min", minuten, sekunden));
}
}
});
timer.setRepeats(true);
timer.start();
}
}
}
});