Je travaille déjà sur cela depuis des semaines pour le faire fonctionner mais sans succès. J'utilise Javafx et java pour implémenter un petit programme de chat en utilisant l'API smack (xmpp). Le problème est comment obtenir les messages reçus de java à javafx. Le code ci-dessous fonctionne actuellement quand j'ai une variable avec une chaîne statique comme "message de test" et en appelant postMessage dans java pour l'envoyer à javafx. Mais comment puis-je obtenir un autre objet (MessageListener) de java appelant postMessage?Appeler un objet d'une autre classe (java, javafx)
public class Java_callback implements RunnableFuture {
FXListener listener;
public String testmsg;
public Java_callback(FXListener listener) {
this.listener = listener;
}
@Override
public void run() throws Exception {
postMessage(testmsg);
}
public void postMessage(final String msg) {
Entry.deferAction(new Runnable() {
@Override
public void run() {
listener.callback(msg);
}
});
}
}
Voici le code pour le traitement du message. Cette partie doit en quelque sorte appeler postMessage à partir du code ci-dessus.
public void xmpp_create_chat(String msg) {
ChatManager chatmanager = connection.getChatManager();
Chat newChat = chatmanager.createChat("[email protected]", new MessageListener() {
@Override
public void processMessage(Chat chat, Message message) {
//msgArray.add(new String("Received message: " + message.getBody()));
//msg_return = "blabla";
//java_callback.postMessage(msg_return);
//test.postMessage(message.getBody());
//System.out.println("Received message: " + message);
}
});
public static void postMessage (dernier message de chaîne) ne fonctionne pas car listener.callback (msg); (message d'erreur: "l'écouteur de variable non statique ne peut pas être référencé à partir d'un contexte statique" –
Voir ma mise à jour ci-dessus. , mais je suis paranoïaque ça va casser quelque chose d'autre – Dolph
Merci beaucoup, ça marche –