Veröffentlicht 8. Dezember 200420 j Hi, Weiß irgendjemand von euch, wie man etwas automatisch aktualisiert? Also so eine Uhrsynchronisation? Habe ganz toll geschrieben, was der machen soll, aber weiß net, wie ich dem Copiler beibringe, dass er die Uhr alle 1 Seknude aktualisiert Im Klartext Ich will das eine bestimmte Aktion alle 1 Sekunde wiederholt wird. Hatte es mit sleep versucht aber das wollte irgendwie net =( Außerdem macht der ja dann das auch net, was danach kommt, oder? while(true) { // An die Funktion zeitHolen wird die Variable Ausgeben übergeben und diese Informationen werden in der VAriable Uhrzeitanzeigend gespeichert Uhrzeitanzeigend = zeitHolen(Ausgeben); // Das Uhrzeit Label bekommt die Informationen der Variable Uhrzeitanzeigend label5 = new JLabel(Uhrzeitanzeigend); sleep(2000); }
8. Dezember 200420 j Probiers mal so: new Runnable() { public void run() { while(true) { // Uhrzeit berechnen ... label5.setText(uhrzeit); try { sleep(50); } catch(InterruptedException e) { } } } }.start(); ungetestet...
8. Dezember 200420 j Geht auch innerhalb einer Schleife mit Thread.sleep(500); Ohne einen eigenen Thread. Und wieder mein Hinweis auf http://www.javabuch.de Peter
8. Dezember 200420 j @ king of brain Danke, aber irgendwie ist die javabuch.de Seite bei uns gespeert =( und das mit nur sleep(2000) funktioniert nicht! Muss ich noch eine weiter Klasse einbinden? Verwende zur Zeit folgende Klassen: import java.lang.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.io.*; import java.sql.*; import java.lang.NumberFormatException;
8. Dezember 200420 j Zunächst mal: java.lang.*; wird nicht in die import-Anweisungen aufgenommen. Warum funktioniert es nicht? Hast du einen Compilerfehler oder zeigt er zur Laufzeit nur nichts an? Hast du die InterruptedException bei der Anweisung Thread.sleep(2000) abgefangen? Du musst schon etwas Informationen geben.
8. Dezember 200420 j das java.lang habe ich auch nur für mich drinnen stehen, braucht keiner zu beachten. ISt für mich ne Hilfe. Also Thread.sleep funktioniert. Aber nur alleine sleep(2000) funktioniert nicht (so hattest du es aber gesagt)
8. Dezember 200420 j Hast du nun meine Methode angewendet, oder die von kingofbrain? Ich sehe gerade, dass ich einen Fehler drin habe! Du hast Recht? Ich sagte aber,dass es ungetestet ist! new Thread(new Runnable() { public void run() { while(true) { // Uhrzeit berechnen ... label5.setText(uhrzeit); try { sleep(50); } catch(InterruptedException e) { } } } }).start(); so müsste es richtig sein. Oder einfach statt new Thread(...) "Thread.sleep()" in der run() schreiben.
8. Dezember 200420 j HAbe mal eine Frage, macht der das dann so neben bei? Also tut er den Code den er danach bekommt trotzdem weiter ausführen, doer bleibt er da stehen? Weil die Uhr ist vll. gerade mal 1/100 von dem Programm
8. Dezember 200420 j Mit dem Code, den ich dir gegeben habe wird der restliche Code auch ausgeführt. Der Sinn eines Threads ist nunmal die Nebenläufigkeit. Gehört auch zum Grundwissen über Java - IMHO ist das sogar ein sehr wichtiges Kapitel. Schau dir am besten mal Doku dazu an.
8. Dezember 200420 j So, hattest es immer noch falsch, aber es funktioniert, wenn du Thread.sleep(50) eingibst. Musst also trotzdem erst Thread.sleep eingeben. Nochmal Danke, jetzt weiß ich endlich wie ich sowas automatisch machen kann =)
8. Dezember 200420 j Also irgendwie will der das trotzdem nicht machen. Er bleibt bei der Eingabe. Auch wenn ich als Sleep eine 1 eingebe Wenn ich den Thread aufbaue, dann geht irgendwie keine Zeitsync mehr. Hatte vorher einen Button, der aktualisiert hat, aber der hat daraufhin auch nicht mehr funktioniert
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.