# Sekundencounter



## JAVAnnik (27. Apr 2011)

Hi,

kann mir jemand einen Code für einen Sekundencounter der von 60sekunden runterzählt geben?
Und falls ich ihn nicht verstehen sollte auch erklären :bahnhof: ?

Danke schon mal im Vorraus


----------



## faetzminator (27. Apr 2011)

```
int timer = 60;
while (timer >= 0) {
    System.out.println(timer--);
    Thread.sleep(1000);
}
```
so was?


----------



## JAVAnnik (27. Apr 2011)

ja so in der Art, ich geb nochmal nähere Informationen:

eine Aktion z.B. ein Klick auf einen Button soll solange ausgeführt werden können bis der Timer bei 0 angekommen ist


----------



## Cola_Colin (27. Apr 2011)

Wie führt man den einen Klick 60 Sekunden lang aus ?
Maustaste runter - 60 Sekunden warten - Maustaste hoch


----------



## JAVAnnik (27. Apr 2011)

Cola_Colin hat gesagt.:


> Wie führt man den einen Klick 60 Sekunden lang aus ?
> Maustaste runter - 60 Sekunden warten - Maustaste hoch



ich meinte nicht, dass der Klick 60 Sekunden lang ausgeführt werden soll, sondern, dass nur etwas bei einem Klick passieren soll wenn der Timer der ab dem Programmstart anfängt runter zu zählen noch nicht bei 0 angekommen ist.


----------



## Michael... (27. Apr 2011)

Der Button soll nach 60 sec deaktiviert werden?
Dafür brauchst Du keinen "Counter" sondern einen Timer, oder soll dem Anwender ein Countdown angezeigt werden?. Egal, sowas ist mittels Thread oder der Klasse Timer umsetzbar
Eventuell da mal einen Blick reinwerfen:
How to Use Swing Timers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Other Swing Features)
Using Timers in Swing Applications


----------



## JAVAnnik (27. Apr 2011)

Michael... hat gesagt.:


> Der Button soll nach 60 sec deaktiviert werden?
> Dafür brauchst Du keinen "Counter" sondern einen Timer, oder soll dem Anwender ein Countdown angezeigt werden?. Egal, sowas ist mittels Thread oder der Klasse Timer umsetzbar
> Eventuell da mal einen Blick reinwerfen:
> How to Use Swing Timers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Other Swing Features)
> Using Timers in Swing Applications



danke genau sowas hab ich mir vorgestellt :applaus:


----------



## JAVAnnik (27. Apr 2011)

wunderbar mein programm lässt sich 60 Sekunden lang ausführen und lässt sich danach nicht mehr betätigen - genauso wie ich es wollte 

jetzt hab ich noch ein Problem, wie kann ich dem Benutzer anzeigen wie viel Zeit ihm noch bleibt ?


----------



## faetzminator (27. Apr 2011)

Du kombinierst mein Beispiel mit den Swing-Klassen. Du verwendest ein delay von 1000ms und verwendest die von Michael... geposteten Klassen. Bei jedem Aufruf dessen setzt du einfach noch ein JLabel o.ä. mit dem aktuellen Wert.


----------



## Michael... (27. Apr 2011)

Wie schaut der Code bzw. Dein "Timer" bisher aus?


----------



## JAVAnnik (27. Apr 2011)

Also ich lad mal mein Programm hoch damit ihr euch den Code anschauen könnt und mir nen paar Tipps geben könnt. Ich denke da ist noch viel Verbesserungspotential da ich zum ersten mal graphisch programmier und wir uns in der Schule bislang auf die langweilige Dos-Konsole beschränkt haben. Ich hab mir mein Programm ohne große Vorkentnisse zusammengebastelt und denke daher, dass ich das ein oder andere Problem etwas unkonventionell ggelöst habe :toll:


----------



## Cola_Colin (27. Apr 2011)

Hmm, ja zeigt nen Timer und macht den Cursor unsichtbar, sonst passiert nicht viel.
Zeige lieber mal die entscheidenden Codestellen und auch nur die. Keiner hat Lust ein Ellenlanges Programm zu lesen.


----------



## Volvagia (27. Apr 2011)

Mach die Figuren doch zu Objekten, die von JLabel erben. Dann müsstest du nicht so komische Methoden aufrufen. (Camelcase!)

"figurKopie.gif" beizulegen wäre vielleicht recht nützlich gewesen.
PNG ist btw. eine bessere Wahl.


----------



## JAVAnnik (27. Apr 2011)

sorry hab die Bilder net mit reingepackt 
so siehts nun im Moment aus:


----------



## Volvagia (27. Apr 2011)

Wie gesagt, mach die Figur am Besten zu einen Objekt. Wozu denn 5 verschiedene? Die Positionen könntest du in ein Array legen, und bei einen Klick eine zufällige neue raussuchen.
Übrigens implementiert MouseAdapter Mouse, -Motion und -WheelListener. Du kannst die meisten MouseAdapter 1 mal erzeugen und einmal als Listener und einmal als MotionListener adden.


----------

