Java 在绘画中使用什么工具来制作一条以上的线?Swing,GWT,FX,Qt还是什么?
我想写一个多点应用程序——一个让来自不同计算机的用户同时在一幅图像上画图的程序。我应该使用什么工具包 我已经发现Jambi在这种情况下并不合适,因为:Java 在绘画中使用什么工具来制作一条以上的线?Swing,GWT,FX,Qt还是什么?,java,user-interface,multithreading,paint,Java,User Interface,Multithreading,Paint,我想写一个多点应用程序——一个让来自不同计算机的用户同时在一幅图像上画图的程序。我应该使用什么工具包 我已经发现Jambi在这种情况下并不合适,因为: 任意数量的线程可以在任意给定的时间进行绘制,但是在给定的绘制设备上一次只能绘制一个线程。换句话说,如果两个线程分别绘制在单独的QImage上,则两个线程可以同时绘制,但这两个线程不能同时绘制在同一QImage上。 ()您最有经验的工具包。 只要正确设计应用程序,就可以在任何工具包中实现这一点;例如: 您将不需要“多线程”绘制,因为用户将看到看似
任意数量的线程可以在任意给定的时间进行绘制,但是在给定的绘制设备上一次只能绘制一个线程。换句话说,如果两个线程分别绘制在单独的QImage上,则两个线程可以同时绘制,但这两个线程不能同时绘制在同一QImage上。
()您最有经验的工具包。 只要正确设计应用程序,就可以在任何工具包中实现这一点;例如:
- 您将不需要“多线程”绘制,因为用户将看到看似平行的绘制效果:相反
- 使用事件。发送事件,如“绘制曲线”或“绘制直线”,通知所有参与者图形的更新
- 使用帧同步。每个参与者都保存一个事件堆栈,这些事件按发生时间排序,由用户生成的事件(如“绘制此”和“绘制那个”)更新。客户机将定期向其他参与者发送其事件堆栈
- 实现您自己的“垃圾收集”:如果某个事件由于其他事件重叠而未修改任何像素,则可以将其丢弃(从堆栈中删除),以提高同步帧和图形的性能
- 实现事件折叠。例如,“从x到y画线”、“从y到z画线”等4个事件可以折叠成类似路径的形状