J'ai une classe appelée communicationManager qui est responsable de la communication avec le serveur.
Il inclut des méthodes Qu'est-ce que je Voulez-vous faire est de lier des actions avec l'interface utilisateur. Dans la classe d'interface graphique, j'ai créé une instance de communicationManager appelée ce que je ne sais pas comment faire est de lier la méthode de la méthode de Classe d'interface graphique à J'apprécierais vraiment si quelqu'un pouvait montrer comment exécuter des méthodes pour exécuter La méthode de la classe d'interface graphique (ex. merci! p> p> login () code> et
OnLoginResponse () code>. En cas de connexion de l'utilisateur, la méthode
Connexion () code> doit être appelée et lorsque le serveur répond à la méthode
OnloginResponse () code> est exécuté. P>
MCommunicationManager code>. De la classe d'interface graphique, la méthode
login () code> est simplement appelée par la ligne p>
OnloginResponse () Code>. Par exemple, si la classe d'interface graphique comprend la méthode
notifyuser () code> qui affiche le message reçu de theserver. P>
gui.notifuser () code>) lorsque l'instance de la classe
mcommunicationmanager code> reçoit le message du serveur et de la méthode
communicationmanager.onloginResponse () code> est exécuté. p>
4 Réponses :
Vous pouvez regarder les extraits SWT (regarder les auditeurs) p>
http://www.eclipse.org/swt/snippets/ p>
ou vous utilisez la classe exécutable, en écrasant la méthode d'exécution avec votre code 'Callback'-Code lorsque vous créez une instance p>
Autant que je sache, Java ne prend pas en charge la contraction de la méthode ou des délégués tels que C #. p>
Vous devrez peut-être avoir à implémenter ceci via des interfaces (par exemple comme un auditeur de commandement.). P>
Peut-être que ce site sera utile: p>
http://www.javaworld.com/javaworld/javatips/jw -javatip10.html p>
L'idiome utilisé dans Java pour obtenir un comportement de rappel est des auditeurs. Construire une interface avec des méthodes pour les événements que vous souhaitez, disposez d'un mécanisme d'enregistrement de l'objet à l'écoute avec la source des événements. Lorsqu'un événement survient, appelez la méthode correspondante sur chaque auditeur enregistré. Ceci est un modèle commun pour les événements AWT et SWING; Pour un exemple choisi au hasard, voir FocusListener A > et la correspondante objetezent objet . p>
Notez que tous les événements de Java AWT et Swing Héritez en fin de compte de EventObject et la Convention consiste à appeler l'écoute quelque choselistener code> et l'événement
QuelqueEvent code>. Bien que vous puissiez vous échapper avec votre code, tout ce que vous voulez, il est plus facile de maintenir le code qui collez avec les conventions de la plate-forme. P>
Il y a deux motifs ici, je peux vous voir utiliser. L'une est la Publier / Souscrire Modèle d'observateur mentionné par Pete. Je pense que c'est probablement ce que vous voulez, mais voyant que la question mentionne la liaison d'une méthode d'exécution ultérieure, je pensais que je devrais mentionner le Modèle de commande .
Le modèle de commande est essentiellement un travail autour du fait que Java ne traite pas les méthodes (fonctions) comme des objets de première classe et il est donc impossible de les transmettre. Au lieu de cela, vous créez une interface qui peut être transmise et qui encapsule les informations nécessaires sur la manière d'appeler la méthode d'origine. P>
Donc pour votre exemple: p>
public void login() { command.execute(); }
Pourquoi personne n'a dit à propos de l'appel http pour cette fonction de rappel impliquant Swing?
Question d'un débutant. Pourquoi pouvez-vous faire système.out.print (mcommunicationmanager.login ()); (Supposons, imprimer le message du serveur est la tâche)? Je comprends le cas d'utilisation dans un modèle multi-threadé mais je ne peux pas visualiser le scénario de connexion dans un modèle multi-fileté.