EventQueue.invokeLater(new Runnable()
{
public void run()
{
ZipTestFrame frame = new ZipTestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
Répondre
Ce code crée une instance d'une classe anonyme implémentant runnable. Cet objet est passé en argument à EventQueue.invokeLater, qui l'appellera plus tard (ce qui signifie qu'il appellera la méthode run sur cet objet à un moment ultérieur).
Vous n'avez pas besoin d'une variable pour pointer vers l'objet car vous utilisez uniquement cet objet dans cette instance. La méthode invokeLater possède une variable locale pointant vers l'objet (étant donné que l'objet est passé en argument et les arguments sont des variables locales), qu'il utilise pour stocker l'objet dans la file d'attente des événements, qui fait également référence à l'objet jusqu'à L'objet est appelé et retiré de la file d'attente, auquel cas il est éligible pour la récupération de place.
Addendum:
Un exemple primitif de ce qu'est une file d'attente d'événement simple pourrait ressembler à:
class MyEventQueue {
Queue<Runnable> queue = new LinkedList<Runnable>();
public void invokeLater(Runnable r) {
queue.add(r);
}
public boolean hasNext() {
return !queue.isEmpty();
}
public void processNext() {
queue.poll.run();
}
}
est ici ce qui ressemble événement comme:
class Event {
Runnable RunnableObject;
public void invokeLater(Runnable runner) {
RunnableObject = runner;
}
/* background thread */
public void thread() {
while (condition) {
if (itsLater) {
RunnableObject->run();
}
}
}
}
Il existe une méthode asynchrone en retard la façade Event qui prendra l'objet anonyme que vous avez passé à invokeLater et appellera sa méthode run(). L'objet existe toujours, il a une définition - mais il n'a pas de référence que vous pouvez utiliser pour l'interroger par la suite, sauf si vous utilisez la méthode run() pour passer le pointeur this à quelque chose d'autre.
- 1. Actionscript - Variable Affectation sans référence?
- 2. variable de référence
- 3. Désérialise un objet de session sans référence de type?
- 4. ASH référence indirecte variable
- 5. C++/CLI de référence variable
- 6. Qu'est-ce que $ {imagepath} fait référence dans un fichier CSS?
- 7. Le plus étrange numéro css que j'ai jamais vu
- 8. Variable d'application des formulaires de référence.
- 9. Que fait {variable} dans flex
- 10. Faut-il passer variable par référence en php5?
- 11. Référence d'un identifiant de composant Lancer une variable
- 12. C++ Comment obtenir une référence et sauvegarder la référence en tant que variable locale dans une fonction?
- 13. Utilisation La valeur d'une variable NSString pour manipuler l'objet auquel le nom fait référence
- 14. Qu'est-ce que la variable d'instance isa?
- 15. Service WCF invoquant - sans aucune référence ajoutée
- 16. Avertissement de référence null Visual Studio - pourquoi pas d'erreur?
- 17. Renvoyer la référence à la variable locale statique en C++
- 18. PHP Comment savoir si une variable est une référence?
- 19. Existe-t-il un moyen de savoir ce qui fait référence à mon objet dans .NET?
- 20. Que fait ce code Javascript?
- 21. Pourquoi ne puis-je pas stocker une instance de classe PHP en tant que variable SESSION?
- 22. Que fait ce morceau de code C++?
- 23. stockage référence classmethod dans tuple ne fonctionne pas comme dans la variable
- 24. PY: Url Encoder sans nom de variable
- 25. Passer une variable par référence dans une extension PHP
- 26. Référence à un objet d'une fonction de rappel dans jQuery
- 27. Comment lire JSP un fichier de WEB-INF dans une variable pour plus tard "impression"
- 28. ne peut pas libérer objet sans écraser
- 29. Pourquoi est-ce que "la référence de type ne trouve pas de type public" sur cette liaison de données?
- 30. Java objet référence/scope question
comment l'invoquera-t-il plus tard? –
Il est placé dans une file d'attente, c'est-à-dire EventQueue, et est exécuté après le traitement des éléments qui le précèdent dans la file d'attente. – user101884