countdown/timer/Zeit warten lassen

Status
Nicht offen für weitere Antworten.

clyde

Mitglied
Hallo,

ich will ein Programm schreiben, bei dem etwas in einem JTextField ausgegeben wird, danach ne Zeit gewartet wird und wenn diese vorüber ist, wieder etwas anderes in das JTextField geschrieben wird. Wollte das mit System.sleep() machen. Ist das eine gute Methode oder gibts da noch was besseres?
Hier mein Code:

field.setText("Text");

try{
System.sleep(5000);
}
catch(InterruptedException e){
System.out.println("Sleep Interrupted");
}

flield.setText("Text");
field.repaint();



Vielen Dank schon mal:)
 
S

SlaterB

Gast
gibt auch die Timer-Klasse,
aber wenn so ein einfacher Befehl reicht, dann spricht kaum was dagegen

Timer verwendet das intern quasi auch,
nicht ganz sleep() sondern wait(), was bessere Unterbrechnung ermöglicht
 

clyde

Mitglied
Ok danke,
hatte vorhin nur vergessen, das eigentliche Problem anzusprechen,
wenn ich das so mache wie oben beschrieben, dann wird der 1. Text nicht ausgegeben,
sondern nur der 2. nachdem der Timer gestartet und abgelaufen ist...
 
S

SlaterB

Gast
solange der AWT-Thread einen ActionListener ausführt und da vielleicht schläft, macht er nix anderes, auch kein repaint,
starte alle längerfristigen Aktionen in einem separaten Thread:

Runnable r = new Runnable() {
public void run() {
// Code, am besten nur ein Methodenaufruf, darin dann all der Code
}
}
new Thread(r).start();
 

clyde

Mitglied
Ok sollte das dann ungefähr so aussehen?

Runnable r = new Runnable(){
public void run() {
try{
Thread.currentThread().sleep(5000);//sleep for 5000 ms
field.setText("Fertig;)");
}
catch(InterruptedException e1){
e1.printStackTrace();
}
}
new Thread(r).start();


Danke schon mal;)
 

Nicer

Bekanntes Mitglied
also ich würde das mal gaaaanz dumm so lösen :

Java:
try{
field.setText("Text");
System.sleep(5000);
}
catch(InterruptedException e){
System.out.println("Sleep Interrupted");
}

flield.setText("Text");
field.repaint();

MfG Nicer
 

clyde

Mitglied
@Nicer jo danke,
das hab ich auch schon probiert,
aber das funktioniert so nicht... warscheinlich wegen dem AWT
 

Nicer

Bekanntes Mitglied
Oke , dann warich wohl echt etwas zu subjektiv beim denken , aber hätte eigentlich fast klappen können *g*

Noja , ich suche mal weiter nach einer lösung , wenn du zeit hast kannst dich ja mal mit meinem neuesten problem im java Anfänger bereich beschäftigen ;)
 
G

Gast2

Gast
Wenn du was in der GUI(setText()) änderst musst du das natürlich auch im GUI Thread(EDT) sein und dich mit diesem synchronisieren. siehe
Code:
SwingUtilities.invokeLater

Aber schau dir wie oben schon erwähnt doch mal die Klasse an
Timer (Java 2 Platform SE v1.4.2)

oder....

Java:
Runnable r = new Runnable(){
public void run() {
try{
Thread.currentThread().sleep(5000);//sleep for 5000 ms
// synchronisieren SwingUtilities
field.setText("Fertig");
}
catch(InterruptedException e1){
e1.printStackTrace();
}
}
new Thread(r).start();


Aber ich würde dir raten mal anch EDT zu suchen und dich da ein bischen einzulesen, dass du auch weißt was du da tust...
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
> oder....

ist das nicht so wie 16:33 schon von clyde geschrieben nach meinem Vorschlag?
ich verstehe eh nicht was derzeit noch offen ist

und JTextComponent.setText() ist netterweise threadsave, da ist in diesem Falle die allgemein gute Idee des invokeLater() nicht nötig ;)
 

Tsubasa

Mitglied
Hi!

Kannst du evtl. mal deinen funktionierenden Code hier reinposten? Hab nämlich in etwa das gleiche Problem (will alle 2 Sekunden meine JLabels automatisch "updaten" und das 90 Sekunden lang, nachdem ein Start-Button angeklickt wurde).
Edith: Habs jetzt auch hingekriegt, also brauchst nix mehr zu schreiben.:)

MfG Tsubasa
 
Zuletzt bearbeitet:

clyde

Mitglied
Hi jo bitte;):

Java:
//Aktion die vorher ausgeführt werden soll

Runnable r = new Runnable(){
	   public void run() {
						try{
						Thread.currentThread().sleep(2000);
						//Aktion nachher 
						}
						catch(InterruptedException e1){
						e1.printStackTrace();
						}
						}
						};
						new Thread(r).start();

wobei das hald nur einmal aktualisiert
 

Tsubasa

Mitglied
Hi!

Ah, du hast das mit Thread (bzw. Runnable) gemacht. Ich hatte Timer verwendet.
Zur Vervollständigung hier mal meine (allgemeine) Lösung:

Java:
public void actionPerformed(ActionEvent evt) {
...
if (source == button) {
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
i++; // Iterator, den ich für die Abbruchbedingung brauche
// mein Code mit den Änderungen der Labels
if (i == abbruchbedingung)
this.notify();
}
}; new Timer(800, taskPerformer).start();

Ciao, Pluesch!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Timer bzw. Countdown Java Basics - Anfänger-Themen 3
T countdown Methode mit Timer Java Basics - Anfänger-Themen 2
B Mit Countdown Midnestdauer für Teilaufgabenerledigung erzwingen Java Basics - Anfänger-Themen 8
S Stunden/Tage Countdown Java Basics - Anfänger-Themen 9
T Countdown erstellen Java Basics - Anfänger-Themen 7
T Countdown funktioniert nicht Java Basics - Anfänger-Themen 5
W Threads 1h 20min Countdown Java Basics - Anfänger-Themen 5
J Countdown Java Basics - Anfänger-Themen 3
D Erste Schritte Countdown mehrfach verwenden Java Basics - Anfänger-Themen 5
F countdown Java Basics - Anfänger-Themen 5
G Countdown von Heute bis Zieldatum Java Basics - Anfänger-Themen 4
N Countdown Java Basics - Anfänger-Themen 4
W Countdown auf "schwarze Blöcke" Java Basics - Anfänger-Themen 3
F Countdown und dann Aktion Java Basics - Anfänger-Themen 4
S Countdown 5min bis 0sek Java Java Basics - Anfänger-Themen 10
D Countdown Funktion aus SQl Datenbank Java Basics - Anfänger-Themen 21
N countdown zähl problem Java Basics - Anfänger-Themen 5
O Countdown mit Erhöhung Java Basics - Anfänger-Themen 2
H Countdown Java Basics - Anfänger-Themen 10
T Countdown, der in der selben Zeile bleibt Java Basics - Anfänger-Themen 6
F Countdown Probleme Java Basics - Anfänger-Themen 9
R Countdown erstellen Java Basics - Anfänger-Themen 3
S Countdown auf JPanel ausgeben Java Basics - Anfänger-Themen 6
M Countdown in Java Java Basics - Anfänger-Themen 16
B Countdown zwischen 2 Zeitpunkten Java Basics - Anfänger-Themen 4
S Timer vs ExecutorService: jeden Sonntag um 14.00 Uhr einen Task starten..? Java Basics - Anfänger-Themen 1
_user_q Timer - ScheduledExecutorService wird schon vorher beendet Java Basics - Anfänger-Themen 5
E multiple Timer die sich nicht summieren Java Basics - Anfänger-Themen 12
Jan_x8 Timer/Scanner Java Basics - Anfänger-Themen 5
C Timer aktualisieren Java Basics - Anfänger-Themen 5
L GUI- wie cancel ich einen Timer? Java Basics - Anfänger-Themen 10
missy72 Timer oder Timeline Java Basics - Anfänger-Themen 3
R Timer Format: 00:00:00 Java Basics - Anfänger-Themen 29
C java.util Timer läuft zu langsam? Java Basics - Anfänger-Themen 1
D Änder der Timer Speeds Java Basics - Anfänger-Themen 1
E Timer trotz erwartender Eingabe durchlaufen lassen Java Basics - Anfänger-Themen 11
L Methoden Timer Java Basics - Anfänger-Themen 9
J Memory-Spiel Aktivierung der Methode mit Timer Java Basics - Anfänger-Themen 44
G Animation Timer Nano Time Java Basics - Anfänger-Themen 2
S Timer reseten Java Basics - Anfänger-Themen 3
T Timer stoppt zu früh Java Basics - Anfänger-Themen 7
CptK Methoden Timer & Mathematischer Denkfehler Java Basics - Anfänger-Themen 7
mobaer Swing Timer stoppen Java Basics - Anfänger-Themen 3
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
J Timer bauen, Main Methode immer wieder neu starten Java Basics - Anfänger-Themen 13
D Timer programmieren Java Basics - Anfänger-Themen 13
N Timer funktioniert nicht beim starten Java Basics - Anfänger-Themen 3
B Timer mehrere Male ausführen Java Basics - Anfänger-Themen 4
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
E Timer erstellen Java Basics - Anfänger-Themen 2
B javax.ejb.Timer wieder starten? Java Basics - Anfänger-Themen 0
S actionlistener timer Java Basics - Anfänger-Themen 9
C Wie kann ich jetzt von der Game.java auf die Timer.java zugreifen? Java Basics - Anfänger-Themen 6
S timer mit imagedatei Java Basics - Anfänger-Themen 5
S timer Java Basics - Anfänger-Themen 0
V Java Uitil Timer Stoppt nicht Java Basics - Anfänger-Themen 2
KaffeeFan Timer beenden Java Basics - Anfänger-Themen 12
K Ampelsteuerung mit Timer Java Basics - Anfänger-Themen 8
F Array und Timer Java Basics - Anfänger-Themen 2
G Timer einsetzen Java Basics - Anfänger-Themen 2
J Timer oder Thread programmieren ? Java Basics - Anfänger-Themen 10
F Timer beendet nicht immer Java Basics - Anfänger-Themen 2
F Timer abbrechen und wieder starten Java Basics - Anfänger-Themen 5
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
T Timer - HILFE Java Basics - Anfänger-Themen 10
O Alternative zum swing-Timer Java Basics - Anfänger-Themen 5
A Wieso funktioniert dieser Timer nicht?? Java Basics - Anfänger-Themen 3
S timer funktion mit javax panel Java Basics - Anfänger-Themen 3
O Laufender Timer+Action Listener in Thread VS isAlive() Java Basics - Anfänger-Themen 4
O Starte Timer, während anderer Timer noch läuft. Ruft dies Schwierigkeiten hervor? Java Basics - Anfänger-Themen 0
M Schneller Timer Java Basics - Anfänger-Themen 2
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
B Timer beenden? Java Basics - Anfänger-Themen 0
G Erste Schritte Timer: In einem festgelegten Intervall eine Methode ausführen Java Basics - Anfänger-Themen 6
O Delayed Timer erstellen Java Basics - Anfänger-Themen 3
M Timer / Thread Java Basics - Anfänger-Themen 43
M Javax.swing - Timer(2 Button) Java Basics - Anfänger-Themen 17
J Timer - Swing Java Basics - Anfänger-Themen 5
A Timer: textarea.getText() mit Variable vergleichen Java Basics - Anfänger-Themen 3
D Problem mit Methode und Timer Java Basics - Anfänger-Themen 35
T Wie mache ich einen Timer der alle 2 sekunden aufgerufen wird? Java Basics - Anfänger-Themen 5
R Einfacher Timer geht nicht Java Basics - Anfänger-Themen 7
J Swing Timer Java Basics - Anfänger-Themen 3
M Einfacher Timer ;) Java Basics - Anfänger-Themen 15
M Timer für Termial-Eingaben Java Basics - Anfänger-Themen 3
C Methoden Einen Timer einbauen, aber wie? Java Basics - Anfänger-Themen 5
B Timer Java Basics - Anfänger-Themen 25
M Timer-Thread in Swing öffnet jedes Mal ein neues Fenster Java Basics - Anfänger-Themen 6
S Timer / Schleifen Verständnis Problem Java Basics - Anfänger-Themen 3
S Erste Schritte Java Timer Java Basics - Anfänger-Themen 13
E Threads Timer Java Basics - Anfänger-Themen 6
Spin KI Anfänger Frage : Timer Problem Java Basics - Anfänger-Themen 6
F Prüfen ob timer läuft Java Basics - Anfänger-Themen 6
L Erste Schritte Timer und Zugriffsattribute Java Basics - Anfänger-Themen 5
M Audio + Timer Java Basics - Anfänger-Themen 12
M Methoden Timer in ActionListener aufrufen Java Basics - Anfänger-Themen 2
R Klassen MemorySpiel: brauche Timer Java Basics - Anfänger-Themen 3
D Timer in Applet Java Basics - Anfänger-Themen 2
ruerob Warum ist Timer schneller als While? Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben