我做了一个使用套接字将绘图程序从一个画布传输到所有其他用户画布的程序。当我在不同的屏幕上测试我的程序时,我遇到了一个问题。在我的笔记本电脑上1366x768一切顺利,但从一个1920x1080屏幕笔记本电脑它不连续。如果我在1920x1080屏幕笔记本电脑上绘制东西,它会在我的1366x768屏幕上显示光滑,但是当我在1366x768上绘制某些东西时,它会发生我说的。我认为问题不在于连接,因为我试图将服务器放在两台笔记本电脑上(不是同时),并从大一台运行一次,从小一台运行一次。它与解决办法有关吗?我如何解决这个问题?Java套接字绘制程序
public void mousePressed(MouseEvent e) {
x=e.getX();
y=e.getY();
}
public void mouseDragged(MouseEvent e) {
x1=e.getX();
y1=e.getY();
gr=canvas.getGraphics();
gr.drawLine(x, y, x1, y1);
if(x!=x1||y!=y1)
{
try {
PrintStream ps=new PrintStream(sc.getOutputStream());
ps.println("!!##print"+" "+x+" "+" "+y+" "+x1+" "+y1);
} catch (IOException e1) {
e1.printStackTrace();
}
}
x=x1;
y=y1;
}
这里是prints.Ignore System.out的函数,因为我用它们来验证一些东西。
else if(mes.charAt(0)=='!'&&mes.charAt(1)=='!'&&mes.charAt(2)=='#'&&mes.charAt(3)=='#'&&
mes.charAt(4)=='p'&&mes.charAt(5)=='r'&&mes.charAt(6)=='i'&&mes.charAt(7)=='n'&&
mes.charAt(8)=='t'
)
{
System.out.println("am intrat la desenat");
StringTokenizer tok=new StringTokenizer(mes);
String aii=tok.nextToken();
ArrayList<Integer> numere=new ArrayList<Integer>();
for(int i=0;i<4;i++)
{
numere.add(Integer.parseInt(tok.nextToken()));
}
Graphics gs=canvas.getGraphics();
gs.drawLine(numere.get(0), numere.get(1), numere.get(2), numere.get(3));
}
编辑:这种情况发生的另一件事是,在较低的1920×1080的约束画布不appear.It好像我对这项决议小帆布,从1366×768
你能提供一些代码,你发送/接收点和你如何绘制它? –
如果你想要的东西说,我会把它 – User124235
它不是从分辨率它是从网络 – User124235