gpt4 book ai didi

java - 从另一个类调用对象(java、javafx)

转载 作者:行者123 更新时间:2023-12-04 06:58:45 25 4
gpt4 key购买 nike

我已经为此工作了数周以使其正常工作但没有成功。我正在使用 Javafx 和 java 来实现一个使用 smack API (xmpp) 的小型聊天程序。问题是如何将接收到的消息从 java 获取到 javafx。当我有一个带有静态字符串(如“测试消息”)的变量并在 java 中调用 postMessage 以将其发送到 javafx 时,下面的代码实际上是有效的。但是如何从 java 调用 postMessage 获取另一个对象(MessageListener)?

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);
}
});
}
}

这里是处理消息的代码。这部分不知何故需要从上面的代码中调用 postMessage 。
    public void xmpp_create_chat(String msg) {

ChatManager chatmanager = connection.getChatManager();
Chat newChat = chatmanager.createChat("admin@unfc", 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);

}
});

最佳答案

如果您制作 postMessage()静态,如:

public static void postMessage(final String msg);

...然后你可以做一个 static方法调用来自 processMessage() ,如:
Java_callback.postMessage(msg_return);

更新:也更改您的监听器初始化。
private static FXListener listener;

希望这不会破坏提供的代码之外的内容:)

关于java - 从另一个类调用对象(java、javafx),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2214949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com