该小程序的界面设计如下:
小程序能够实现的功能有:
- 发送:向本机(自己)发送聊天消息
- 记录:所有的聊天记录存储在“config.txt”的文本文件里
- 清屏:点击后,显示区域清空
- 震动:类似于QQ中窗口抖动的功能
通过编写Java代码实现界面和所有功能
所有源码如下:
package com.soar.socket;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo4_GUIChat extends Frame {
//通过继承Frame类就可以使用Frame中所有的方法了
//对界面上所有的功能模块创建局部变量,方便使用
private TextField tf;
private Button send;
private Button log;
private Button clear;
private Button shake;
private TextArea viewText;
private TextArea sendText;
private DatagramSocket socket;
private BufferedWriter bw;
/**
* @param args
* 通过GUI设置
* 单机版QQ聊天
*/
public Demo4_GUIChat() {
init();
southPanel(); //下面的面板
centerPanel(); //中间的面板
event(); //所有事件
setIconImage(Toolkit.getDefaultToolkit().createImage("qq.png")); //为该窗体设置一个Logo
}
public void event() {
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
try {
socket.close();
bw.close();
}