这是我想要做的:
使用服务器端的applet在客户端绘制applet。
我的想法是只发送鼠标坐标(当按下并拖动鼠标时),客户端将使用这些坐标进行绘制。
但是我没有关于如何在拖动鼠标时发送坐标的想法。
按下鼠标时的代码:
Test()
拖动鼠标时的代码:
public boolean mouseDown(Event e, int x, int y) {
lastx = x; lasty = y; // Remember where the click was
return true;
我如何以实时时间发送这些坐标?
答案 0 :(得分:0)
我不确定您是如何将数据发送到客户端的,所以我会尽力建议您最好的方式。
假设您以对象形式从服务器向客户端发送数据,我将给您伪代码。
让我们在你的服务器上说出一个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.
}