网络画板的开发也是基于通信基础。关于通信的体内容,在上一篇博客里面已经说过,这里不再多说。这里主要介绍一下该画板的实现过程。当然这三行代码还是核心内容。
ServerSocket server = new ServerSocket(12345); Socket client = server.accept(); Socket client = new Socket("localhost", 12345);
首先,是一个画板的实现,这个不是大问题。还有就是文件传输的问题,这也不是问题,这个在上一章已经得到解决。所以不在累述。
首先我们在创建服务器画板时打开服务器,当然为了方便于问题的解决,我们把客户端的地址也设置为默认的,在打开画板的一瞬间客户端同时连接服务器。为了更好的作画,我们选择了一个拉杆啊监听器来监听RGB三原色的值,这样有助于画出不同颜色的图形,首先是实例化三个拉杆,当然还有三个监听器,这是必然的,其次是对他们分别的加了三个监听器·。这三个监听器分别控制不同的拉杆,分别取得不同的值并设置颜色。
ChangeListener red = (new ChangeListener() { public void stateChanged(ChangeEvent e) { R = jsR.getValue(); g.setColor(new Color(R, G, B)); } }); jsR.addChangeListener(red);
还有就是定义了一个类,这是不同于前几次文件传输的一种尝试,这样有助于把一个类封装起来从而有利于属性值的调用此类统一为line类,其实用shape更合适。每次获取坐标值之后把它存到对象中,这样在客户端只要获取类中的数据就可以。
public void mouseReleased(MouseEvent e) { x2 = e.getX(); y2 = e.getY(); Line line = new Line(); String command = bg.getSelection().getActionCommand(); try { line.setX1(x1); line.setX2(x2); line.setY1(y1); line.setY2(y2); line.setCommand(command); line.setR(R); line.setG(G); line.setB(B);
其次,我定义了一个按钮组,这样在判断画什么图形的时候就可以可以直接勾选前面的那个而不用加按钮组,这极大地方便了画板的灵活性,能够更好的运用画板。
private ButtonGroup bg = new ButtonGroup();// 创建一个按钮组
怎么样,那就一起和我看一下吧,看看成果如何。
当然,还有好多地方需要不断的改进和完善。比如没有设置擦除工具等。。
相关推荐
易语言虽然在网络编程方面不如专门的网络库强大,但通过其内建的`网络`模块,也能实现基本的网络通信功能。 总的来说,“易语言网络签名设计源码”涵盖了图形图像处理、用户交互设计、网络通信等多个方面的知识点。...
第二部分 基础知识篇 第2章 canvas基本功能 / 20 2.1 绘制基本图形 / 20 2.1.1 画线 / 20 2.1.2 画矩形 / 22 2.1.3 画圆 / 24 2.1.4 画圆角矩形 / 26 2.1.5 擦除canvas画板 / 27 2.2 绘制复杂图形 / 28 ...
第1篇ActionScript3.0语言基础 第1章ActionScript3.0概述 2 1.1ActionScript概述 2 1.1.1ActionScript环境 2 1.1.2ActionScript3.0特性 3 1.1.3ActionScript3.0代码组织 5 1.2ActionScript3.0API概览 5 1.3小结 8 第...
- Meteor的 Publish-Subscribe(发布-订阅)机制使得数据流只在需要的时候传输,减少了不必要的网络通信,提升了性能。 8. **安全与权限管理** - Meteor的Accounts系统提供用户认证和授权,确保只有合法用户能...