x Sekunden warten

Status
Nicht offen für weitere Antworten.
M

Martin

Gast
Hallo,

wie kann ich in Java eine gewisse Zeit warten?
Hatte mir eigentlich gedacht das es so geht:
sleep(int msec);
oder wait(int msec);
aber so klappt es leider nicht. Wie geht das richtig?

Schon mal danke für eure Antworten.
 
B

Beni

Gast
Thread.sleep( ... )

Braucht noch ein try-catch-Block.

Und wenn du was graphisches programmierst: beschäftige dich zuerst mit Multithreading.
 
G

Guest

Gast
Es handelt es sich nicht um ein Multithreting Programm. Ich muss doch erst ein Object vom Typ Thread erzeugen. Da ich schon von JFrame erbe, fällt das erben von Thread weg. Kann ich einfach xxx Thread = new Thread(); benutzen und dann xxx.sleep(1000); schreiben?
 
B

Beni

Gast
Thread.sleep ist eine statische Methode, die kannst du also aufrufen, ohne ein Thread-Objekt erzeugen zu müssen.

Diese sleep-Methode blockiert dann denjenigen Thread, der die Methode aufgerufen hat.

Guck mal in der FAQ nach. Das ist dort vielleicht ein leicht anderes Problem, aber "sleep" wird eingesetzt um eine Schlaufe "abzubremsen".

Und wenn du einfach so mal "sleep" aufrufst, ohne Multithreading zu betreiben, wird einfach dein ganzes Prog stehen (inkl. der graphischen Oberfläche).
 
M

Martin

Gast
Habe jetzt einfach mal an der passenden stelle Thread.sleep(1000); geschrieben. Beim Compilieren kommt folgende Fehlermeldung (benutze NetBeans, aber dass sollte ja egal sein):

init:
deps-jar:
Compiling 1 source file to /home/martin/Timer/build/classes
/home/martin/Timer/src/timer/TimerGUI.java:108: unreported exception java.lang.InterruptedException; must be caught or declared to be thrown
Thread.sleep(1000);
1 error
BUILD FAILED (total time: 0 seconds)
 

Kaan

Bekanntes Mitglied
Versuch mal das hier:

Code:
try{
     Thread.sleep(1000);
}catch(InterruptedException e){}
 
M

Martin

Gast
OK, danke das klappt eigentlich soweit. Aber doch nicht ganz so wie ich es mir vorgestellt habe:
Ich versuche einfach nen Timer zu schreiben der von einer bestimmten Zeit runterzält. Volgenden ansatz habe ich. Das Problem was jetzt auftaucht, ist dass die zwischenschritte nicht angezeigt werden. Das Ende wird richtig angezeigt und die regrusionsschleife verlassen aber eigentlich solle noch die zwischenschritte angezeigt werden, aber befor das geschied greift wahrscheinlich schon die sleep anweisung. Was kann ich da machen (auser multithreading)?

Code:
   private void StartStopBtnActionPerformed(java.awt.event.ActionEvent evt) {
AbgelaufenLab.setText("0");
abgelaufenVar = 0;
RestLab.setText(TimeTxt.getText());
restVar = Integer.parseInt(RestLab.getText());
try{
     Thread.sleep(1000);
}catch(InterruptedException e){} 
Timer();
    }
    
    private int Timer()
    {
        abgelaufenVar++;
        restVar--;
        AbgelaufenLab.setText(""+abgelaufenVar);
        RestLab.setText(""+restVar); 
        if (restVar==0){return 0;}
        
        try{
            Thread.sleep(1000);
        }catch(InterruptedException e){} 
        Timer();
        return 1;
    }
 
M

Martin

Gast
Danke, jetzt weiss ich wie es richtig geschrieben wird :) aber das Prog läuft immer noch nicht richtig. Kann mir den keiner nen tipp geben?
 
B

bygones

Gast
kann es leider nicht ausprobieren - aber als Tipp würde ich dir die Tiimer Klasse ans Herz legen...

Swing ist nicht Thread-safe - daran könnte es liegen....
 
M

Martin

Gast
Danke, wusste gar nicht das es in Java nen Timer gibt. So wollte ich das auch eigentlich machen. Hatte aber nichts passendes gefunden und deswegen das mit dem sleep versucht
 

Stefan1200

Top Contributor
Martin hat gesagt.:
Danke, wusste gar nicht das es in Java nen Timer gibt. So wollte ich das auch eigentlich machen. Hatte aber nichts passendes gefunden und deswegen das mit dem sleep versucht

Es gibt sogar zwei Timer in Java.

javax.swing.Timer
java.util.Timer

Der javax.swing.Timer ist etwas einfacher zu nutzen, aber auch ungenauer und eher für GUI Sachen zu gebrauchen, oder bei Dingen, wo es nicht auf Millisekunden ankommt. Einfach mal in die API Doku schauen, wie man die nutzt.
 
M

Martin

Gast
Danke für den Tip mit dem Timer. Habe mich für den swing Timer entschieden. Bei dem Prog muss es nicht so genau sein. Habe aber jetzt noch ne frage. Der Timer zählt in meinem Prog eine Variable runter. Wenn die bei 0 angekommen ist soll was auf der GUI angezeigt werden. Das war noch kein Problem, habe einfach ein Label genommen was visible gesetzt wird. Aber zusätzlich soll noch ein Ton ausgegeben werden. Entweder über den PC-Speaker nen einfaches beep (aber dazu habe ich leider gar nichts in der Java-doc gefunden) oder eine Datei über die Soundkarte (egal ob MP3 oder wav oder sonst was). Für das zweite habe ich gefunden dass ich da was mit javax.sound.sampled machen muss. Aber das habe ich alles nicht so ganz verstanden. Ausserdem würde mir die variante über den PC-Speaker besser gefallen, da man diesen nicht so einfach aus machen kann. Ist das in Java überhaubt realisierbar und hat jemand nen Tipp wie ich das angehen muss?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D JFrame - 10 Sekunden bis zum schließen warten. Java Basics - Anfänger-Themen 2
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
H For-Schleife für 60 sekunden laufen lassen Java Basics - Anfänger-Themen 1
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
A Zeitintervall erstellen: z.B. 4000 Sekunden = 01:06:40 Java Basics - Anfänger-Themen 21
Z Enter Taste alle 0,5 Sekunden ausführen Java Basics - Anfänger-Themen 1
J Rechenzeit in Sekunden Java Basics - Anfänger-Themen 3
B Für gesamte Schleife genau X Sekunden benötigen Java Basics - Anfänger-Themen 1
G Mausclick all 5 Sekunden Java Basics - Anfänger-Themen 4
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
H Erste Schritte Sekunden in Uhrzeit Java Basics - Anfänger-Themen 7
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
A Methoden Gedanken Anstöße zur Realisierung zweier Ideen (Grafisch Sekunden zählen und Frameaufteilung) Java Basics - Anfänger-Themen 18
T Wie mache ich einen Timer der alle 2 sekunden aufgerufen wird? Java Basics - Anfänger-Themen 5
E Methode erst nach 20 Sekunden ausführen? Java Basics - Anfänger-Themen 4
J Für 3 Sekunden etwas bestimmtes zeichnen Java Basics - Anfänger-Themen 8
J Aufgabe: Zeit in Sekunden Java Basics - Anfänger-Themen 9
G Millisekunden in Minuten und Sekunden umwandeln Java Basics - Anfänger-Themen 12
F Sekunden abschneiden bei Date Java Basics - Anfänger-Themen 4
G Sekunden bis zum Ende der aktuellen Kalenderwoche ermitteln! Java Basics - Anfänger-Themen 3
W OOP Datum aus Access in Textfeld schreiben ohne Stunden/Minuten/Sekunden Java Basics - Anfänger-Themen 2
W Rekursion: Sekunden berechnen Java Basics - Anfänger-Themen 3
H Unterschied zwischen 2 Date in Sekunden am einfachsten? Java Basics - Anfänger-Themen 5
K Nach x Sekunden neuer Text/Zeile Java Basics - Anfänger-Themen 11
C Anzahl der Sekunden aus Uhrzeit extrahieren Java Basics - Anfänger-Themen 6
A Verständnisfrage Sekunden/Tage Umrechnung Java Basics - Anfänger-Themen 3
S Zeitspanne in Sekunden Java Basics - Anfänger-Themen 3
S Zeitspanne in Sekunden Java Basics - Anfänger-Themen 4
S While-Schleife nach 10 sekunden abbrechen. Java Basics - Anfänger-Themen 20
T sekunden zählen Java Basics - Anfänger-Themen 7
K Thread nach X-Sekunden beenden Java Basics - Anfänger-Themen 6
M Sekunden aufteilen Java Basics - Anfänger-Themen 5
G date in sekunden umwandeln und wieder zurück. Java Basics - Anfänger-Themen 6
Z Zeitfunktion, die die Sekunden berechnet? Java Basics - Anfänger-Themen 30
G Ein Image langsam einblenden und nach 5 Sekunden ausblenden? Java Basics - Anfänger-Themen 10
TRunKX Probleme mit der Zeit (Stunden Sekunden) Java Basics - Anfänger-Themen 7
M Stunden, Minuten, Sekunden als Integer-Variablen, wie? Java Basics - Anfänger-Themen 2
G Datum und Uhrzeit in Sekunden konvertiern Java Basics - Anfänger-Themen 4
H JavaFX Hintergrundfarbe ändern, warten, Hintergrundfarbe wieder ändern Java Basics - Anfänger-Themen 34
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
E Richtiges Warten Java Basics - Anfänger-Themen 8
S in ActionListener auf Eingabe aus anderem Frame warten Java Basics - Anfänger-Themen 2
G Wie kann ich 1s lang warten? Java Basics - Anfänger-Themen 1
R Threads aufeinander warten lassen? Java Basics - Anfänger-Themen 10
S Input/Output In Java Swing auf Button warten? Java Basics - Anfänger-Themen 9
A Thread auf anderen warten Java Basics - Anfänger-Themen 2
C Warten auf Antwort Java Basics - Anfänger-Themen 22
S Threads Programm terminiert statt zu warten Java Basics - Anfänger-Themen 20
E ExecutorService warten bis alles fertig? Java Basics - Anfänger-Themen 5
A Threads Eine Klasse muss auf Variable der Anderen warten. Java Basics - Anfänger-Themen 6
D Input/Output Auf Tasteneingabe warten Java Basics - Anfänger-Themen 4
A Activity1 soll auf Activity2 warten (Camera-Intent) Java Basics - Anfänger-Themen 5
D Threads Kartenspiel - auf legen warten Java Basics - Anfänger-Themen 15
B Methode warten lassen bis Button gedrückt wird Java Basics - Anfänger-Themen 16
JAVAnnik auf Threadende warten Java Basics - Anfänger-Themen 6
H Auf Threads warten Java Basics - Anfänger-Themen 3
S Warten bis alle Threads fertig sind Java Basics - Anfänger-Themen 12
I Auf DB-Operation warten Java Basics - Anfänger-Themen 2
R Thread soll auf andere Threads warten Java Basics - Anfänger-Themen 3
T Warteschlange warten lassen bis Ereignis Java Basics - Anfänger-Themen 27
A Main warten lassen bis Variable durch Button übergeben wird Java Basics - Anfänger-Themen 2
V Warten bis die Länge eines Strings nicht mehr 0 ist Java Basics - Anfänger-Themen 13
M prozess starten und warten bis dieser sich beendet Java Basics - Anfänger-Themen 3
G Eigene Klasse für externe Befehle - Warten auf Prozesse Java Basics - Anfänger-Themen 6
D Auf Event warten Java Basics - Anfänger-Themen 4
F Logikproblem: Auf Mouselistener warten Java Basics - Anfänger-Themen 6
E Auf Mouselistener warten?! Java Basics - Anfänger-Themen 20
M Warten bis Thread an einem Semaphore angekommen ist Java Basics - Anfänger-Themen 4
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
S Auf andere Methode warten Java Basics - Anfänger-Themen 7
B Während Schleife nicht auf Eingabe warten Java Basics - Anfänger-Themen 2
T auf vbscript warten Java Basics - Anfänger-Themen 3
S Thread warten abbrechen? Java Basics - Anfänger-Themen 5
C auf beendigung eines threads warten Java Basics - Anfänger-Themen 6
P Warten auf KeyTyped Java Basics - Anfänger-Themen 7
M warten in einer while-schleife Java Basics - Anfänger-Themen 12
L programm zum warten zwingen Java Basics - Anfänger-Themen 4
B Auf Programm warten Java Basics - Anfänger-Themen 2
S Auf Object warten Java Basics - Anfänger-Themen 2
K Auf File- Befehl warten. Java Basics - Anfänger-Themen 10
T eine Sekunde warten Java Basics - Anfänger-Themen 11
C Konsolenanwendung auf belibige Taste warten Java Basics - Anfänger-Themen 2
D Auf anderes Fenster Warten Java Basics - Anfänger-Themen 6
A Warten auf Userinput Java Basics - Anfänger-Themen 2
G Bei JDialog warten Java Basics - Anfänger-Themen 5
T Auf Selection warten Java Basics - Anfänger-Themen 7
N Java Insel 6 lesen oder auf 7 warten ? Java Basics - Anfänger-Themen 11
S Programmablauf pausieren, bzw. auf Eingabe warten Java Basics - Anfänger-Themen 4
G Warten auf Eingabe Java Basics - Anfänger-Themen 12
G Thread soll warten Java Basics - Anfänger-Themen 5
F 1 Minute warten Java Basics - Anfänger-Themen 18
S Thread auf Thread warten lassen. Java Basics - Anfänger-Themen 2
G auf ende mehrerer threads warten Java Basics - Anfänger-Themen 2
B Timer / Thread warten Java Basics - Anfänger-Themen 3
G warten Java Basics - Anfänger-Themen 10
P Warten-Fenster Java Basics - Anfänger-Themen 8
vogella *Gelöst *Im Programm warten (wait()) Java Basics - Anfänger-Themen 2
A Bitte Warten Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben