Erstellen eines Java-Timer und TimerTask?
Ich bin neu in Java, und ich bin versucht, einen einfachen timer, ich bin vertraut mit set_interval
, wegen Erfahrung mit JavaScript und ActionScript,
Ich bin nicht so vertraut mit Klassen noch so bekomme ich leicht verwirrt, ich verstehe, dass ich brauche, um eine neue Timer
, und legen Sie dann einen TimerTask
, aber ich weiss nicht, wie genau es zu tun, obwohl ich schaue mir die Dokumentation jetzt..
Also schuf ich ein Applet, und das ist meine init
Methode:
public void init() {
TimerTask myTask;
Timer myTimer;
myTimer.schedule(myTask,5000);
}
Wie kann ich eigentlich die Aufgabe code?
Ich wollte, es zu tun, so etwas wie
g.drawString("Display some text with changing variables here",10,10);
Siehe How to Use Swing Timers.
Ich Stimme nicht mit allen Antworten hier (
Ich Stimme nicht mit allen Antworten hier (
even is quite good possible
), für Swing JComponents
und Painting in AWT / Swing
verwenden nur Swing Timer
wie bemerkt, von @trashgodInformationsquelleAutor Radicate | 2012-11-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie gesagt, von vielen eine wunderbare Stackoverflow-Benutzer, die richtige Idee hier ist die Verwendung der javax.swing.TImer. Hier ist eine kleine code-snippet für Ihre Hilfe. Fragen Sie jede Frage, die jenseits Ihrer Reichweite ist, werde ich versuchen, Informationen zu liefern ebenfalls.
Darf ich Fragen, was macht der swing-timer die bessere Wahl? Es ist nur so, dass ich gerade mit Programmieren angefangen, und der code enthält eine nette Menge von Dingen, ich bin noch nicht kennt, haha
Als sehr viel angegeben durch @mKorbel und @trashgod, Swing Timer ist wirklich geeignet für dieses Dingens im Zusammenhang zu Schwingen. Ein Zitat aus dem angegebenen link von trashgod sagt Im Allgemeinen empfehlen wir die Verwendung von Swing-Timer eher als general-purpose-Timer für GUI-bezogene Aufgaben, da Swing Timer alle den gleichen, bereits vorhandenen timer-thread und den GUI-bezogene Aufgabe automatisch ausgeführt wird, auf dem event-dispatch-thread. Jedoch, Sie könnte verwenden Sie ein Allzweck-timer, wenn Sie nicht Vorhaben, berühren Sie den GUI-timer, oder brauchen, um langwierige Verarbeitung.
Hier sind die Anzahl der verschiedenen erstaunliche Beispiele von @mKorbel und Beispiele von @trashgod
Also, wenn mein Ziel ist eigentlich das erstellen eines einfachen 2d-Spiel, meine beste Wahl, werden Timer-eher als ein Swing-Timer? Oder..
InformationsquelleAutor nIcE cOw
Was Sie wollen perfom D. H. Zeichnung oder smwhat, nur Aufgabe definieren und implementieren Sie den code drin.
Nun, ich nehme an, den Sie gerade erstellt die Klasse selbst, aber für einige Grund es gibt mir immer eine Fehlermeldung, dass es erwartet, die für eine Klasse, interface oder enum
Wenn Sie fixieren Sie Ihre Fehler lassen Sie mich wissen, was haben Sie bekommen.
Bitte doch mal einen Blick in deine Antwort wieder. Wer rief dies
paintComponent(...)
Methode (niemand ruft dies in Ihrem code). DaJApplet
hat Sie nichtpaintComponent()
Methode, es hat nurpaint()/paintComponents()
Methode, also, wenn Sie denken, Sie werden überschreiben, versuchen, um eine annotation, so dass der compiler in der Lage sein, mit Ihnen zu streiten.Gute Vorschläge, ich hatte etwas Zeit und Lesen Sie meine Antwort und einige Fehler behoben. Bitte schauen Sie sich eine neue version.
InformationsquelleAutor Roman C
Habe ich herausgefunden, das gleiche problem bei meiner kleinen app, ich weiß, dass meine Lösung nicht die beste, aber es ist einfach. nur zwei self-changing-Parameter in die benutzerdefinierte innere Klasse. hier ist mein code.
InformationsquelleAutor Teifi
Beispiel, wie Sie erwarten, in diesem link
Timer ausgeführt werden, wird für immer in unserer Anwendung bis die Anwendung geschlossen ist, oder Wenn es nicht mehr Arbeit zur Verfügung stehen wird, abzutreten oder zu Planen.
TimerTask - das ist die Aufgabe, die hat einige Funktionen, die ausgeführt werden, basierend auf Zeit oder Dauer.
In Timer wir assgin TimerTask zu führen, die für bestimmte Dauer oder zu starten, seine Ausführung zu bestimmten Dauer.
Bitte Verstehen, wie es funktioniert, dann bewerben Sie sich mit Applets oder andere
1,Die GCTask-Klasse erweitert die TimerTask-Klasse und implementiert die run () - Methode.
2,Innerhalb der TimerDemo Programm, ein Timer-Objekt und eine GCTask-Objekt instanziiert.
3, Mit dem Timer-Objekt das task-Objekt ist geplant, mithilfe der schedule () - Methode des Timer-Klasse ausgeführt werden, nachdem eine 5-Sekunden Verzögerung und anschließend weiter ausführen alle 5 Sekunden.
4,Die unendliche while-Schleife in main() erzeugt Objekte vom Typ " SimpleObject (deren definition folgt), die sofort verfügbar sind für die garbage collection.
InformationsquelleAutor sunleo