Swing为java设计的一套GUI解决方案,java图形化编程的常见方式,虽然已经不再受宠,但是作为java初学者还是值得学习的。这里介绍一种通过socket与后台通信的方式。
工具/原料
jdk8
idea
方法/步骤
1、客户端界面设计如图,放置一个输入框用于用户输入文字,一个按钮用于点击后向服务端发送消息。
2、客户端代码实现:界面实现,首先构造一个frame和一个panel,通过媚矩碌踝往pane里面放置一个提示panel,一个输入框JTextF足毂忍珩ield,一个JButton,设置布局和提示文字,最后把这个panel放到frame里面,然后调用frame.setVisible(true);就可以展示。因为需要从按钮监听方法中获取输入框文字信息,所以需要将输入框msgTxt设置成final。消息发送:这里每次通过构造一个新的Socket对象在本机地址的8899端口,然后通过skt.getOutputStream()获取流并构造一个PrintWriter发送消息。
3、服务端代码实现:如图代码,服务端通过构造一个ServerSo罕铞泱殳cket并监听在本机的8899端口,因为需要搏皋咬夼实时监听客户端发送消息,这个写了一个while实现的死循环,通过skt=sskt.accept();轮询获取流,并通过newBufferedReader(newInputStreamReader(skt.getInputStream()构造BufferedReader对象来获取客户端发送的消息。
4、本地测试:首先启动服务端,然后启动客户端,如图向客户端输入信息,点击发送。在客户端和服务端控制台打印出来的信息中,每条消息都已经成功向服务端发送
5、总结:这里通过java的swing、socket、IO流等技术实现了一个简单的swing通信程序。可以看出只实现了客户端向服务端发送消息的单工通信,后面的服务端同时向客户端发送消息感兴趣的读者自己实现。