Sobald eine Schalfläche betätigt wurde, werden auf einzelnen Karten die Vorderseite angezeigt.
Anschließend soll eine Pause von 5 Sek. sein und danach soll wieder die Rückseite angezeigt werden.
Ich hätte dies wie folgt gelöst:
Java:
classButtonListenerimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvent e){// TODO Auto-generated method stubif(e.getActionCommand().equals("schummeln")){for(int i =0; i <42; i++){
karten[i].vorderseiteZeigen();}try{Thread.sleep(5000);}catch(InterruptedException arg0){
arg0.printStackTrace();}for(int i =0; i <42; i++){
karten[i].rueckseiteZeigen();}}}}
Allerdings sind nun zuerst 5 Sek. Pause, dann wird die Vorderseite und sofort danach die Rückseite angezeigt.
Wie muss ich das umstellen, damit es wie gewünscht funktioniert?
darf man echt nicht? ich mein klar man sollte es vermeiden, weil dadurch der ganze GUI einfriert aber bei mir hat es zumindest so gefunzt wie gewünscht (klick -> vorderseite -> 5sec pause -> rückseite)
Ändere ich Zeilen 18-21, dann funktionierts:
[Java=18] Timer t = new Timer(1500, new ActionListener() {
public void actionPerformed(ActionEvent e) { color.setBackground(Color.GREEN); }});
t.setRepeats(false);
t.start();[/code]
classTimerListenerSchummelimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvent e){// TODO Auto-generated method stubfor(int i =0; i <42; i++){
karten[i].schummelRueckseiteZeigen();}}}//////////////////////////111 ein Listener für die SchaltflächeclassButtonListenerimplementsActionListener{@OverridepublicvoidactionPerformed(ActionEvent e){// TODO Auto-generated method stubif(e.getActionCommand().equals("schummeln")){for(int i =0; i <42; i++){
karten[i].schummelVorderseiteZeigen();}
timerSchummel =newTimer(3000,newTimerListenerSchummel());
timerSchummel.setRepeats(false);
timerSchummel.start();}}}
Legt ihr den Listener dann nicht in einer eigenen Klasse an?
Bis jetzt habe ich das nur so gelernt.
Kommt auf den Fall an - in Klassen zu denken ist aber sicher nicht verkehrt.
Für kurze dahingehackte Tests oder Beispiele schreib ich trotzdem lieber da kurz ne anonyme Klasse hin