首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我更改按钮的图标,然后使用阻塞命令(从套接字获取信息)时,直到I get响应,我才能看到图标中的更改

当我更改按钮的图标,然后使用阻塞命令(从套接字获取信息)时,直到I get响应,我才能看到图标中的更改
EN

Stack Overflow用户
提问于 2019-04-17 01:36:08
回答 1查看 38关注 0票数 0

我试着在两个设备之间写一个Tic Tac Toe游戏,有图形和所有的东西,但我有一个问题。在我按下一个按钮后,我改变了它的图标,然后通过一个套接字发送数据,并使用阻塞命令来获得响应。我的问题是,只有在从套接字获得响应之后,我才能看到按钮图标的变化。有人知道该怎么做吗?

我学习了python中的套接字,直到最近我才决定尝试用java中的套接字编写程序,所以我在Java方面没有太多经验。我试图在等待响应之前延迟程序,并得到两个响应(一个是自动的),但它们都失败了。我也尝试使用计时器来更新按钮的图标,每一次滴答,也不工作。

这是我的代码中的相关部分

代码语言:javascript
复制
Socket sock;
PrintWriter pr;
InputStreamReader in;
BufferedReader bf;
代码语言:javascript
复制
public void click(int x, int y)
{
    buttons[x][y].setIcon(new ImageIcon("C:\\Users\\shaked\\Desktop\\red_Pin.jpg"));
    String msg = (char)x + "," + (char)y;
    try     {
    System.out.println("SLEEPING");
    Thread.sleep(1000);
    }
    catch(InterruptedException ex)
    {
        Thread.currentThread().interrupt();
    }
    pr.println(msg);
    pr.flush();
    String enemy_move = bf.readLine();
}
EN

回答 1

Stack Overflow用户

发布于 2019-04-24 18:33:12

您需要从另一个线程运行通信。只需像这样创建一个新的。

代码语言:javascript
复制
 new Thread() {
      @Override
      public void run() {
        // code in here
      }
    }.start();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55713758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档