Ich habe ein Malprogramm mit Sockets gemacht, um Punkte von einer Leinwand an alle anderen Benutzer canvas.Wenn ich mein Programm auf verschiedenen Bildschirmen getestet habe ich auf ein Problem gestoßen.Auf meinem Laptop 1366x768 geht alles gut, aber von a 1920x1080 Bildschirm Laptop geht diskontinuierlich.Wenn ich etwas auf dem 1920x1080 Bildschirm Laptop zeichnen zeigt es glatt auf meinem 1366x768 Bildschirm, aber wenn ich etwas auf dem 1366x768 zeichnen passiert es, was ich sage.Ich denke, das Problem ist nicht mit der Verbindung, weil ich versucht habe Stellen Sie den Server auf beide Laptops (nicht gleichzeitig) und laufen Sie einmal von der großen und einmal von der kleinen. Es hat mit der Auflösung zu tun? Wie kann ich das beheben?Java Socket Paint Programm
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;
}
Hier ist die Funktion, die druckt.Ignorieren Sie die System.out, weil ich sie verwendet, um einige Dinge zu überprüfen.
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));
}
EDIT: Eine andere Sache, die von der Leinwand auf 1920x1080 ist, dass der untere nicht appear.It scheint gebunden geschieht, wie ich auf dieser Auflösung eine kleine Leinwand haben, dass die Leinwand von 1366x768
Können Sie einen Code angeben, wo Sie die Punkte senden und empfangen und wie Sie sie zeichnen? –
Wenn Sie etwas anderes sagen wollen, und ich werde es setzen – User124235
ist es nicht von der Auflösung ist es von der Vernetzung – User124235