2017-04-24 1 views
0

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

+1

auch: http://stackoverflow.com/questions/25025715/javax-swing-timer-vs-java-util-timer-inside-of-a-swing-application – px06

+0

Verwenden Sie immer 'javax.swing.Timer 'für ein Swing-Programm. Es gibt sehr wenige Situationen, wo Sie etwas anderes verwenden würden. – Radiodef

Antwort

1

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