我试着在两个设备之间写一个Tic Tac Toe游戏,有图形和所有的东西,但我有一个问题。在我按下一个按钮后,我改变了它的图标,然后通过一个套接字发送数据,并使用阻塞命令来获得响应。我的问题是,只有在从套接字获得响应之后,我才能看到按钮图标的变化。有人知道该怎么做吗?
我学习了python中的套接字,直到最近我才决定尝试用java中的套接字编写程序,所以我在Java方面没有太多经验。我试图在等待响应之前延迟程序,并得到两个响应(一个是自动的),但它们都失败了。我也尝试使用计时器来更新按钮的图标,每一次滴答,也不工作。
这是我的代码中的相关部分
Socket sock;
PrintWriter pr;
InputStreamReader in;
BufferedReader bf;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();
}发布于 2019-04-24 18:33:12
您需要从另一个线程运行通信。只需像这样创建一个新的。
new Thread() {
@Override
public void run() {
// code in here
}
}.start();https://stackoverflow.com/questions/55713758
复制相似问题