gpt4 book ai didi

java - 如何通过套接字发送鼠标坐标

转载 作者:太空宇宙 更新时间:2023-11-04 13:40:59 25 4
gpt4 key购买 nike

这是我想做的:

使用服务器端的小程序在客户端的小程序上绘图。

我的想法是只发送鼠标坐标(当按下并拖动鼠标时),客户端将使用这些坐标进行绘制。

但是,我不知道如何在拖动鼠标时发送坐标。

鼠标按下时的代码:

public boolean mouseDown(Event e, int x, int y) {
lastx = x; lasty = y; // Remember where the click was
return true;

鼠标拖动时的代码:

public boolean mouseDrag(Event e, int x, int y) {

g.drawLine(lastx, lasty, x, y); // Draw from last position to here
lastx = x; lasty = y; // And remember new last position
return true;

我如何实时发送这些坐标?

最佳答案

我不确定您如何将数据发送到客户端,因此我会尽力向您建议最好的方法。

假设您以对象形式从服务器向客户端发送数据,我将为您提供伪代码。

假设您的服务器上触发了 mousedown 事件

public boolean mouseDown(Event e, int x, int y) {
lastx = x; lasty = y; // Remember where the click was
client.send(new ServerClickEvent(x, y)); //Assuming you are using objects to send details to the client
return true;
}

现在,在客户端,当您收到此对象时,您可以为服务器设置lastX和lastY。

因此,假设每当您从客户端的服务器获取对象时,就会触发 received(Object object) 方法。

你能做的是,

public void received(Object object){
if(object instanceof ServerClickEvent)
setServerLastXAndLastY(object); // where setServerLastXAndLastY method will set lastX and lastY locations of the Server on the client side.
}

现在,当服务器上有拖动事件时,您可以类似地执行

public boolean mouseDrag(Event e, int x, int y) {
client.send(new ServerMouseDragEvent(x, y));
g.drawLine(lastx, lasty, x, y); // Draw from last position to here
lastx = x; lasty = y; // And remember new last position
return true;

}

现在在客户端你可以简单地做

 public void received(Object object){
if(object instanceof ServerMouseDragEvent)
drawDragLine(object); // where drawDragLine method will draw the lines by taking x and y values from object and will change the lastX and lastY locations of the Server on the client side.
}

关于java - 如何通过套接字发送鼠标坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31256200/

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