gpt4 book ai didi

java图形用户界面和逻辑

转载 作者:行者123 更新时间:2023-11-30 09:50:39 27 4
gpt4 key购买 nike

我花了 3 个小时试图理解一件事,但没有成功...

问题是:

我有一个类 Gui(一个客户端),它有一个纸牌游戏的主类。 Gui 有一个 main,它在 invokelater 中有一个 Runnable,逻辑(一个单独的类管理游戏 session )在其中运行,还有一些方法来操纵卡片的顺序。

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
PokerClientGui gui = new PokerClientGui();
gui.setVisible(true);
PokerClient pokerClient = new PokerClient(gui);

pokerClient.gameSession();
}
});
}

逻辑是在 Gui 的主体中创建的,将 Gui 本身传递给逻辑。就我在程序中的处理而言,没有问题,因为从服务器发送到客户端逻辑的所有对象/字符串都已收到,例如 Hand 已传递到 gui 并正确显示。现在问题来了:我想从gui传递给逻辑,被操纵的手通过逻辑类的方法将它发送到服务器。
由于此函数是由 Gui 上的事件鼠标调用的(而不是在 Gui 的主体中),我没有逻辑对象的句柄,所以我不能使用它的发送对象方法。 我尝试将发送逻辑的方法更改为静态,并且我还使静态成为参与在套接字上发送内容的成员.....

它没有发送任何东西......这不是错误的问题,我 try catch 异常(并且没有任何异常)

我哪里错了?我错过了什么?我应该如何绑定(bind)图形用户界面和逻辑?

最佳答案

或许您可以在您的 Runnable() 类中创建一个事件队列,并将其传递给您的 gui 和您的客户端构造函数。

客户端将添加事件供 GUI 显示,而 GUI 将添加事件供客户端处理。使用两个队列可能更容易,每个队列一个,而不是为两个方向重复使用一个 channel 。

然后您的 GUI 和您的客户端会将该对象的事件队列添加到事件列表中,以便在事件循环中等待时“检查”。当一个事件来自另一个对象时,它会唤醒当前对象进行处理,与来自服务器或用户的事件相同。

关于java图形用户界面和逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5056287/

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