La création d'un Java Minuterie et d'un TimerTask?
Je suis débutant en Java et je suis en train de régler une minuterie simples, je suis familier avec set_interval
, en raison de l'expérience avec JavaScript et ActionScript,
Je ne suis pas familier avec les classes de pourtant si je m'embrouille facilement, je comprends que j'ai besoin de définir une nouvelle Timer
, puis de définir un TimerTask
, mais je ne comprends pas exactement comment le faire, même si je suis à la recherche de la documentation en ce moment..
J'ai donc créé une Applet, et c'est mon init
méthode:
public void init() {
TimerTask myTask;
Timer myTimer;
myTimer.schedule(myTask,5000);
}
Comment puis-je en fait le code de la tâche?
Je voulais faire quelque chose comme
g.drawString("Display some text with changing variables here",10,10);
Voir Comment Utiliser Swing Minuteries.
Je suis en désaccord avec toutes les réponses ici (
Je suis en désaccord avec toutes les réponses ici (
even is quite good possible
), pour Swing JComponents
et Painting in AWT / Swing
à utiliser uniquement Swing Timer
comme remarqué par @trashgodOriginalL'auteur Radicate | 2012-11-02
Vous devez vous connecter pour publier un commentaire.
Comme dit par beaucoup un merveilleux Stackoverflow utilisateurs, la bonne idée ici est d'utiliser le javax.swing.Minuterie. Voici un petit extrait de code pour votre aide. Faire poser n'importe quelle question, qui est au-delà de votre compréhension, je vais essayer de fournir de l'information de la même manière.
Puis-je vous demander ce qui fait de la balançoire minuterie une meilleure option? C'est juste que je viens de commencer le codage, et votre code contient une belle quantité de choses que je ne suis pas encore familier avec haha
Comme beaucoup spécifié par @mKorbel et @trashgod, Swing Timer est vraiment adapté pour ce truc liées à la Balançoire. Un devis à partir du lien spécifié par trashgod dit En général, nous recommandons l'utilisation de Swing minuteries plutôt que de l'usage général des minuteries pour l'interface graphique des tâches liées parce que Balancer des minuteries partagent tous la même, pré-existant thread horloge et le GUI liées à la tâche exécute automatiquement sur l'event dispatch thread. Toutefois, vous pouvez utiliser une minuterie si vous n'avez pas l'intention de toucher à l'interface utilisateur graphique de la minuterie, ou d'effectuer de longues traitement.
Voici certain nombre de différents étonnante de exemples par @mKorbel et exemples par @trashgod
Donc, si mon but est de créer un simple jeu en 2d, mon meilleur choix sera Minuterie plutôt qu'un Swing Timer? Ou..
OriginalL'auteur nIcE cOw
Ce que vous voulez perfom c'est à dire le dessin ou smwhat, il suffit de définir la tâche et de mettre en œuvre le code à l'intérieur.
Eh bien en fait, je suppose que vous venez de créer la classe vous-même, mais pour une raison quelconque, il continue de me donner une erreur en disant qu'il s'attend à une classe, une interface ou un enum
Lorsque vous corrigez vos erreurs laissez-moi savoir ce que vous avez.
S'il vous plaît avoir alook à votre réponse encore une fois. Qui a appelé cette
paintComponent(...)
méthode (personne n'est à l'appel de cette dans votre code). DepuisJApplet
n'en a paspaintComponent()
méthode, il a seulementpaint()/paintComponents()
méthode, donc si vous pensez que vous écrasez un, essayez de fournir une annotation, de sorte que le compilateur être en mesure de discuter avec vous sur ce point.De bonnes suggestions, j'ai eu le temps de lire ma réponse et la correction de quelques bugs. S'il vous plaît vérifier une nouvelle version.
OriginalL'auteur Roman C
J'ai trouvé le même problème sur mon petit app, je sais que ma solution n'est pas la meilleure, mais c'est simple. utiliser deux auto-modification des paramètres dans la coutume intérieur de la classe. voici mon code.
OriginalL'auteur Teifi
Exemple vous vous attendiez à ce lien
Minuterie seront en cours d'exécution, pour toujours dans notre application, jusqu'à l'application de la fermeture ou Quand il n'y a plus d'emplois seront disponibles afin de les attribuer ou de les Planifier.
TimerTask -- c'est la tâche qui a certaines fonctionnalités qui sont basés sur le temps ou la durée.
Dans Minuterie nous assgin TimerTask de courir pour la durée donnée ou pour commencer à durée donnée.
S'il vous plaît Comprendre comment cela fonctionne avant de l'appliquer à l'applet ou de tout autres
1,Le GCTask classe étend la TimerTask classe et met en œuvre la méthode run ().
2,Dans le TimerDemo programme, un objet Timer et un GCTask objet instancié.
3, à l'Aide de la Minuterie de l'objet, de l'objet tâche est planifiée à l'aide de l'horaire() la méthode de la classe Timer pour exécuter après un retard de 5 secondes et ensuite continuer à exécuter toutes les 5 secondes.
4,L'infini tout en boucle dans main() instancie des objets de type SimpleObject (dont la définition suit) qui sont immédiatement disponibles pour la collecte des ordures.
OriginalL'auteur sunleo