Hallo Ich mache ein Java-Projekt in GUI, in dem ich etwas ändern muss, nachdem eine bestimmte Zeit vergeht, wollte ich die Unterschiede zwischen Timer und TimerTask-Klassen kennen und wenn sie beide Thread oder sind nicht ... wollte auch wissen, ob java.util.Timer und java.swing.Timer in diesem Zweck anders sind? danke für die BeantwortungUnterschied zwischen Timer und TimerTask in Swing
Antwort
Sie können alle Ihre Antworten in API-Dokumentation finden. I.e. javax.swing.Timer
docs sagt:
In v 1.3 wurde eine weitere Timer-Klasse auf die Plattform Java hinzugefügt: java.util.Timer. Sowohl es als auch javax.swing.Timer bieten die gleiche grundlegende Funktionalität , aber java.util.Timer ist allgemeiner und hat mehr Funktionen. Der javax.swing.Timer hat zwei Funktionen, die es einfacher machen, ihn mit GUIs einfacher zu verwenden: . Erstens ist seine Ereignisbehandlungsmetapher den GUI-Programmierern vertraut und kann den Umgang mit dem Ereignis-Dispatching-Threadein bisschen einfacher machen. Zweitens, seine automatische Thread-Freigabe bedeutet, dass Sie keine speziellen Schritte unternehmen müssen, um zu vermeiden, dass zu viele Threads hervorbringt. Stattdessen verwendet der Zeitgeber denselben Thread , der verwendet wird, um Cursors blinken zu lassen, Tooltipps werden angezeigt und so weiter.
Die kurze Antwort ist, dass die java.util.Timer
allgemeiner ist.
Auch, wenn Sie die API-Seiten überprüfen, erweitert keine dieser Klassen Thread
. Einige von ihnen benutzen Threads intern.
Wenn Sie wirklich eine Art von Timing implementieren müssen, empfehle ich, eine zentrale ScheduledThreadPoolExecutor
zu verwenden. Dieser geplante Executor ist flexibler als jeder der Timer, außerdem gibt er Ihnen mehr Kontrolle. siehe
- 1. Timer & TimerTask versus Thread + Schlaf in Java
- 2. Swing-Timer Ausgabe - Stop Timer
- 3. Java Swing Timer und ActionEvent
- 4. Java Swing Timer Probleme
- 5. Swing-Timer funktioniert nicht
- 6. Java Swing Timer
- 7. Wie pausiere ich und setze einen TimerTask/Timer fort
- 8. Was ist der Unterschied zwischen Applets und SWING?
- 9. Unterschied zwischen SwingWorker und SwingUtilities.invokeLater
- 10. Was ist der Unterschied zwischen Timer und Thread? Python, threading
- 11. Verwenden von Swing-Timer zum Umschalten zwischen JFrames
- 12. Probleme mit dem Swing-Timer
- 13. Abstrakte Klasse mit Swing-Timer
- 14. Mehrere timerTask
- 15. Painting in Swing Timer funktioniert nicht
- 16. Unterschied zwischen `% in%` und `==`
- 17. Java TimerTask Abbrechen
- 18. Problem in Java TimerTask Intervall
- 19. Stoppen Sie eine TimerTask ohne den Timer zu stoppen
- 20. Meine Timertask nicht
- 21. Timertask funktioniert nicht!
- 22. Unterschied zwischen invokeLater/invokeAndWait und asyncExec/syncExec
- 23. Javax Swing-Timer - Ändern der Verzögerungszeit
- 24. So stoppen Sie einen Java Swing Timer
- 25. Java Timer Swing Genau 60 fps
- 26. Java Swing Countdown-Timer funktioniert jetzt richtig
- 27. Unterschied zwischen $ @ und $! in Perl
- 28. Unterschied zwischen [] und [,,] in Python
- 29. Unterschied zwischen '.' und "." in Java
- 30. Unterschied zwischen $ {} und $() in Bash
auch: http://stackoverflow.com/questions/25025715/javax-swing-timer-vs-java-util-timer-inside-of-a-swing-application – px06
Verwenden Sie immer 'javax.swing.Timer 'für ein Swing-Programm. Es gibt sehr wenige Situationen, wo Sie etwas anderes verwenden würden. – Radiodef