我正在构建一个白板,它将有一个服务器(教师)和客户(学生)。老师会在他身边画一些东西,这些东西将与学生完全相同。
任何帮助将不胜感激。
答案 0 :(得分:6)
JComponent
,然后使用JPanel
。如果我在老师的一边画一条线,同样应该发生在孩子的屏幕上,直播,所以有一种实时绘画的感觉..
然后你肯定想要尽可能减少带宽密集的路线。那将是瓶颈。
..有一个JFrame,我有2个JPanels,1个用于绘图,1个用于按钮。
在这种情况下,将绘图组件设为JComponent
&保留JPanel
(或JToolBar
)作为控件。
..什么是“可能的最小带宽密集路线”?
按照带宽和忽略极端情况的顺序,它们会按照以下顺序减少:
如果有任何混淆,我建议选项3.2。
答案 1 :(得分:4)
使用Robot.createScreenCapture()并广播整个教师的屏幕。
捕获:
sendBuffer[index++] = robot.createScreenCapture(new Rectangle(0,0,1360,768));
显示:
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(receiveBuffer[index], 0, 0, jFrame.getWidth(), jFrame.getHeight(), null);
receiveBuffer[index++]=null;
}
你必须在接收器中进行重新缩放。