用java语言编一个聊天小程序
- 格式:doc
- 大小:144.00 KB
- 文档页数:9
初级前端开发实训实现一个简单的聊天室功能一、简介在本次的初级前端开发实训中,我们将着手实现一个简单的聊天室功能。
聊天室是一种实时通信的应用程序,用户可以通过聊天室与其他用户进行文字交流。
我们将使用前端开发技术来搭建界面,并结合后端技术来实现聊天功能。
二、项目准备实现聊天室功能需要以下准备工作:1. 下载并安装Node.js:Node.js是一个基于Chrome V8引擎的JavaScript运行环境,我们将使用它来实现后端的逻辑。
2. 安装Express框架:Express是Node.js的一个快速、开放、极简的web应用框架,我们将使用它来搭建服务器。
3. 创建项目文件夹:在本地计算机上创建一个文件夹,命名为ChatRoom,用于存放项目文件。
三、搭建前端界面1. 创建HTML文件:在ChatRoom文件夹中创建一个名为index.html的文件,这将作为前端界面的入口文件。
2. 编写HTML代码:根据聊天室的需求,设计并编写HTML代码,包括聊天显示区域、输入框、发送按钮等元素。
3. 使用CSS美化界面:在HTML文件中引入CSS文件,并根据需求编写样式,使得聊天室界面整洁美观。
四、实现前后端交互1. 创建服务器:在ChatRoom文件夹中创建一个名为server.js的文件,用于处理前后端之间的数据传输。
2. 使用Express框架:在server.js文件中引入Express框架,并设置服务器的监听端口。
3. 处理前端请求:编写服务器端代码,当接收到前端的请求时,根据请求的内容做出相应的处理。
4. 实现聊天功能:服务器端接收到用户发送的聊天消息后,将其广播给所有在线用户,实现实时的聊天功能。
五、项目测试1. 启动服务器:在终端中进入ChatRoom文件夹,并运行server.js 文件,启动服务器。
2. 打开浏览器:在浏览器中访问localhost:port(port为设置的监听端口),打开聊天室界面。
teams toolkit java开发实例Microsoft Teams Toolkit for Java 是一个开源项目,为 Java 开发者提供了一组用于与 Microsoft Teams 交互的工具和库。
通过使用这个工具包,Java 开发者可以轻松地构建与 Teams 集成的应用程序,并利用 Teams 的强大功能,如聊天、文件共享、日历和视频会议等。
下面是一个使用 Microsoft Teams Toolkit for Java 开发的基本示例,展示如何创建一个简单的 Java 应用程序,向 Teams 中发送消息。
首先,确保你已经将 Teams Toolkit for Java 添加到你的项目中。
你可以通过 Maven 或 Gradle 将它添加为依赖项。
xml<!-- Maven --><dependency><groupId>com.microsoft.teams</groupId><artifactId>microsoft-teams</artifactId><version>YOUR_VERSION</version></dependency>接下来,创建一个 Java 类,并使用 Teams Toolkit 发送消息:javaimport com.microsoft.teams.BotFrameworkClient;import com.microsoft.teams.ChannelAccount;import com.microsoft.teams.OnMessageReceivedEvent;import com.microsoft.teams.OnMessageReceivedHandler;import com.microsoft.teams.TeamsCallback;import com.microsoft.teams.TeamsError;import com.microsoft.teams.TeamsException;import com.microsoft.teams.TeamsNotVerifiedException;import com.microsoft.teams.messaging.cards.AdaptiveCard;import com.microsoft.teams.messaging.cards.AdaptiveCardElement;import com.microsoft.teams.messaging.cards.AdaptiveCardSection;import com.microsoft.teams.messaging.cards.CardContent;import com.microsoft.teams.messaging.cards.Text;import com.microsoft.teams.messaging.outboundmessages.OutboundMessage;importcom.microsoft.teams.messaging.outboundmessages.OutboundMessageBuilder;import java.util.*;public class TeamsMessagingBot {private BotFrameworkClient client;private ChannelAccount channelAccount;private OnMessageReceivedEvent onMessageReceivedEvent;private OnMessageReceivedHandler onMessageReceivedHandler;private String botId;private String appId;private String appPassword;private String tenantId;private String serviceUrl;private String userId;private String userObjectId;private String channelId;private String conversationId;private boolean isGroupConversation;private boolean isVerified;private boolean isFirstRun;private String language;private Map<String, String> userDataMap = new HashMap<>();private Map<String, String> userPropertiesMap = new HashMap<>();private Map<String, String> conversationPropertiesMap = new HashMap<>();private Map<String, String> serviceUrlPropertiesMap = new HashMap<>();private Map<String, String> channelPropertiesMap = new HashMap<>();private Map<String, String> conversationUserIdsMap = new HashMap<>(); private Map<String, Set<String>> messageIdMap = new HashMap<>();private Map<String, String> messageContentMap = new HashMap<>();private Map<String, Set<String>> messageAttachmentsMap = new HashMap<>(); private Map<String, String> messageSummaryMap = new HashMap<>();private Map<String, String> messageTimestampMap = new HashMap<>();private Map<String, Set<String>> userRolesMap = new HashMap<>();private Map<String, Set<String>> botRolesMap = new HashMap<>();private Map<String, Set<String>> appRolesMap = new HashMap<>();private Map<String, Set<String>> serviceUrlRolesMap = new HashMap<>(); private Map<String, Set<String>> channelRolesMap = new HashMap<>();}。
java简单实用小项目实例Java是一种广泛应用于开发各类软件和项目的编程语言,它具有简洁、高效、可靠等特点。
本文将介绍几个简单实用的Java小项目实例,帮助读者巩固和应用Java语言的知识。
1. 学生成绩管理系统学生成绩管理系统是一个常见的小项目,它可以实现对学生信息和成绩的管理和查询。
通过Java语言的面向对象特性,我们可以定义学生类和成绩类,并编写相应的方法来实现学生信息的录入、成绩的录入和查询等功能。
这个项目可以帮助读者熟悉Java的面向对象编程思想和基本语法。
2. 电话号码归属地查询电话号码归属地查询是一个实用的小项目,它可以根据输入的电话号码查询该号码所属的地区。
通过Java语言的网络编程知识,我们可以编写一个简单的客户端程序,通过访问一个公开的电话号码归属地查询API,实现对电话号码归属地的查询。
这个项目可以帮助读者了解Java的网络编程和API的使用。
3. 简易计算器简易计算器是一个常见的小项目,它可以实现基本的加减乘除等运算功能。
通过Java语言的GUI编程知识,我们可以使用Swing或JavaFX等库来创建一个简单的计算器界面,并编写相应的计算逻辑来实现运算功能。
这个项目可以帮助读者熟悉Java的GUI编程和事件处理的基本原理。
4. 文件备份工具文件备份工具是一个实用的小项目,它可以帮助用户将指定目录下的文件备份到指定位置。
通过Java语言的文件操作知识,我们可以编写一个简单的程序,实现对指定目录下的文件进行遍历和复制等操作。
这个项目可以帮助读者了解Java的文件操作和异常处理的基本方法。
5. 网络聊天室网络聊天室是一个有趣的小项目,它可以实现多人在网络上进行实时聊天的功能。
通过Java语言的Socket编程知识,我们可以编写一个简单的服务器程序和客户端程序,实现用户之间的消息收发和显示。
这个项目可以帮助读者了解Java的Socket编程和多线程编程的基本原理。
以上是几个简单实用的Java小项目实例。
推金币Java小程序(Java)推金币游戏是一种常见的娱乐方式,通过这个小程序,我们可以学习如何使用Java语言来实现一个简单的推金币游戏。
本文将介绍推金币游戏的规则以及Java代码的实现。
一、游戏规则推金币游戏是一个单人游戏,游戏中有一堆金币,玩家的目标是通过不断推动金币使其从堆中掉落。
游戏的规则如下:1. 开始时,堆中有一定数量的金币。
2. 玩家每次可以选择推动金币的个数,推动的个数范围是1到3个金币。
3. 玩家和电脑交替进行推金币的操作,直到堆中的金币被推空。
4. 最后将判断推完金币时,是玩家推金币的次数奇数还是偶数,奇数次则玩家获胜,偶数次则电脑获胜。
二、Java代码实现下面是使用Java语言实现推金币小程序的代码:```javaimport java.util.Scanner;public class PushCoinGame {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int coins = 10; // 初始金币数量int count = 0; // 推金币次数while (coins > 0) {// 玩家推金币System.out.print("请输入你要推的金币个数(1-3个):"); int num = scanner.nextInt();if (num < 1 || num > 3 || num > coins) {System.out.println("输入不合法,请重新输入!");continue;}coins -= num;count++;// 判断堆中金币是否已经被推空if (coins <= 0) {break;}// 电脑推金币int compNum = 4 - num; // 电脑总是推剩余金币个数和为4的倍数的数量coins -= compNum;count++;}// 判断胜负if (count % 2 == 0) {System.out.println("电脑获胜!");} else {System.out.println("玩家获胜!");}}}```三、小结通过以上代码,我们实现了一个简单的推金币游戏的Java小程序。
小程序后端开发常用语言
小程序后端开发是一种常见的技术领域,主要用于开发小程序的后台服务。
在小程序后端开发中,常用的语言有Java、Python、Node.js等。
Java是一种广泛应用于企业级应用开发的编程语言,具有良好的可维护性和稳定性。
在小程序后端开发中,Java常用于构建后台服务,处理数据的存储和处理。
通过使用Java开发后端,可以实现数据的增删改查、用户认证和权限控制等功能。
Python是一种易于学习和使用的编程语言,具有简洁优雅的语法和丰富的库。
在小程序后端开发中,Python常用于快速开发原型和处理复杂的业务逻辑。
通过使用Python开发后端,可以实现数据的处理和分析、调用第三方接口和服务等功能。
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,具有高效的非阻塞I/O模型和事件驱动的特点。
在小程序后端开发中,Node.js常用于构建轻量级的后台服务和实时通信功能。
通过使用Node.js开发后端,可以实现实时推送、聊天功能和高并发处理等功能。
除了Java、Python和Node.js外,还有其他语言也可以用于小程序后端开发,如Ruby、Go、PHP等。
选择哪种语言进行开发,取决于项目需求、团队技术栈和个人偏好等因素。
小程序后端开发常用的语言有Java、Python和Node.js等。
每种语言都有其特点和适用场景,开发者可以根据具体需求选择合适的语言进行开发。
无论选择哪种语言,都需要熟悉其语法和相关框架,以确保后端服务的稳定和高效。
希望本文对小程序后端开发常用语言有所了解,并为读者提供参考和帮助。
javaKe视频聊天模块实现目录javaKe视频聊天模块实现 (1)1.JMF概述 (2)1.1 JMF简介与安装 (2)1.2 JMF体系结构 (3)1.3 使用JMF播放多媒体示例 (5)2.JMF使用RTP协议 (7)2.1. 实时传输协议RTP(Real-Time Transport Protocol) (7)2.1.1 RTP工作机制 (8)2.2 实时传输控制协议RTP(Real-Time Transport Control Protocol) (8)2.2.1 RTCP工作机制 (8)2.2.2 RTCP数据包 (8)2.3 JMF中使用RTP (8)2.4 RTP结构 (9)2.4.1 Session管理器SessionManager (9)2.4.2 RTP事件RTPEvent (9)2.4.3 与RTP事件相对应的RTCP类型 (11)2.4.4 数据传输格式 (11)2.4.5 基于JMF的RTP/RTCP传输模型的整体设计 (11)2.5 JMF升级为FMJ (11)3.FMJ视频聊天室的实现 (12)3.1 视频聊天整体结构分析 (12)3.2. 视频聊天客户端代码实现 (12)3.3 视频聊天服务端代码实现 (24)4. FMJ新特性分析 (32)1.JMF概述JMF是Java多媒体框架(Java Media FrameWork)的简称,JMF使你能够编写出功能强大的多媒体程序,却不用关心底层复杂的实现细节。
JMF中包含了许多用于处理多媒体的API。
SUN通过它向Java中引入处理多媒体的能力,下面是JMF所支持的功能的概述:◆可以在Java Applet和应用程序中播放各种媒体文件,例如AU、AVI、MIDI、MPEG、QuickTime和WAV等文件;◆可以播放从互联网上下载的媒体流;◆可以利用麦克风和摄像机一类的设备截取音频和视频,并保存成多媒体文件;◆处理多媒体文件,转换文件格式;◆向互联网上传音频和视频数据流;◆在互联网上广播音频和视频数据。
java经典案例Java是一门广泛应用于开发各种类型程序的编程语言,其灵活性和高效性使得它成为了众多开发者的首选。
下面我将为大家介绍几个经典的Java案例,帮助大家更好地理解和运用Java语言。
案例一:学生成绩管理系统学生成绩管理系统是一个实用的案例,可以帮助学校管理学生的各科成绩。
该系统可以实现对学生信息的录入、保存和查询,还可以计算学生的平均成绩,并根据成绩进行排名。
这个案例涉及到Java中的面向对象编程和文件操作,可以帮助学习者熟悉Java的语法和基本操作。
案例二:银行系统银行系统是一个常见的案例,可以模拟银行的基本操作,如开户、存款、取款、转账等。
这个案例涉及到Java中的面向对象编程和异常处理,帮助学习者理解如何设计一个实际应用中的系统,并处理用户输入的异常情况。
案例三:图书管理系统图书管理系统是一个实用的案例,可以帮助图书馆对图书进行管理和借还操作。
该系统可以实现对图书信息的录入、保存和查询,还可以记录图书的借出和归还情况。
这个案例涉及到Java中的面向对象编程、集合类和文件操作,帮助学习者理解Java中常用的数据结构和操作方法。
案例四:网络聊天室网络聊天室是一个常见的案例,可以模拟多个用户之间通过网络进行聊天的场景。
该系统可以实现用户的注册、登录和发送消息等功能,还可以实现用户之间的私聊和群聊。
这个案例涉及到Java中的网络编程和多线程技术,可以帮助学习者理解网络通信的基本原理和多线程并发的实现。
案例五:在线商城在线商城是一个实际应用中常见的案例,可以实现商品的展示、购买和订单管理等功能。
该系统可以实现用户的注册和登录,还可以将用户的浏览记录和购买记录保存到数据库中,并根据用户的行为进行推荐。
这个案例涉及到Java中的Web开发和数据库操作,可以帮助学习者理解Web应用的基本开发流程和与数据库的交互。
以上案例只是Java中经典案例的一部分,通过学习和实践这些案例,可以帮助我们更好地掌握Java的基本语法和常用技术,并为实际项目的开发打下坚实的基础。
java日历小程序简介:Java日历小程序是一个基于Java语言开发的工具,用于显示和管理日期和时间。
它提供了一种简单而直观的方式来查看、创建和编辑日历事件,并提供了一些额外的功能,如提醒、重复事件和时间段的计算等。
本文将详细介绍Java日历小程序的功能、使用方法和设计原理。
功能:1. 显示日历:Java日历小程序可以显示当前月份的日历,并以日、周或月的形式展示。
用户可以通过界面上的上下翻页按钮切换月份,方便查看不同日期的日历。
2. 创建和编辑事件:用户可以通过Java日历小程序创建新的日历事件,并为每个事件指定标题、日期、时间和地点等详细信息。
程序还提供了事件编辑功能,允许用户修改已有事件的信息。
3. 提醒功能:Java日历小程序可以设置事件的提醒功能,提醒用户在指定的时间前提醒。
用户可以选择在事件开始前几分钟、几小时或几天提醒,并可以自定义提醒方式,如弹窗、声音或邮件通知等。
4. 重复事件:用户可以为事件设置重复功能,使事件在指定的日期间隔内重复发生。
可以选择每天、每周、每月或每年重复,并可以设置重复的结束日期。
5. 时间段计算:Java日历小程序可以计算两个日期之间的时间段,如计算两个事件之间的天数、小时数或分钟数等。
用户可以选择计算方式,并获取精确的时间段结果。
使用方法:1. 下载和安装:用户可以从官方网站上下载Java日历小程序的安装包,然后按照安装向导进行安装。
安装完成后,用户可以在桌面或开始菜单中找到程序的快捷方式。
2. 打开程序:双击程序的快捷方式,Java日历小程序将启动并显示当前月份的日历。
用户可以通过界面上的按钮和菜单来使用各种功能。
3. 创建事件:用户可以点击界面上的“添加事件”按钮,弹出一个对话框,输入事件的详细信息,如标题、日期、时间和地点等。
点击“确定”按钮后,事件将被创建并显示在日历上。
4. 编辑事件:用户可以在日历上点击已有的事件,弹出一个对话框,允许用户修改事件的信息。
局域网聊天程序的实现实现一个局域网聊天程序,主要涉及以下几个方面:1. 服务器搭建:局域网聊天程序需要一个服务器来负责消息的转发和管理。
搭建服务器可以选择使用现有的聊天服务器框架,如Openfire或ejabberd,也可以自己开发一个简单的服务器程序。
服务器端需要提供一个稳定的网络环境,同时要考虑安全性和性能等方面的问题。
2. 客户端开发:局域网聊天程序的客户端可以是桌面应用程序或移动应用程序。
客户端负责用户界面的展示、用户输入的接收和处理、消息的发送和接收等功能。
客户端可以使用现有的跨平台开发框架,如Electron或React Native,或者使用特定平台的开发语言和工具进行开发。
3.用户管理:局域网聊天程序需要实现用户的注册和登录功能。
注册时,用户需要提供用户名、密码和其他必要的信息,并进行用户信息的存储。
登录时,用户需要输入正确的用户名和密码进行身份验证。
客户端还可以提供用户管理功能,如修改密码、查看用户信息等。
4.好友管理:局域网聊天程序可以实现好友管理功能,让用户可以添加和删除好友,并查看好友列表。
用户可以通过添加好友的用户名或ID,发送好友请求,等待对方的确认。
好友列表可以展示好友的在线状态,方便用户选择发送消息的对象。
5.消息传输:局域网聊天程序需要实现消息的传输功能。
客户端可以实时接收到新消息的通知,并在界面上展示。
消息可以支持文字、图片、音频、视频等多种形式。
消息传输可以使用现有的通信协议,如TCP/IP或UDP,也可以自己设计简单的协议。
6.群聊功能:局域网聊天程序可以实现群聊功能,让多个用户可以在同一聊天室中进行实时沟通。
群聊功能需要提供创建群聊、加入群聊和退出群聊等操作。
群聊中的消息可以实时传输给所有在线的用户。
总结一下,实现一个局域网聊天程序需要搭建服务器、开发客户端、实现用户管理、好友管理、消息传输和群聊功能等。
这个过程需要对网络编程、用户界面设计、数据库操作等方面有一定的了解。
用java实现的点对点通信程序的设计通信0903班学号:姓名:指导老师:王国才、杨政宇一设计目标:1.使用Java高级面向对象编程语言编写一个网络聊天程序。
2.理解Socket的基本概念工作原理,掌握Socket的建立、监听、连接、发送数据和接收数据3.环境要求:Windows95/98/2000/XP,WinSocke4.能将键盘上输入的数据发送到另一台计算机上;5.能将接收到的数据显示到屏幕窗口内;6.类似于一般的主流网络即时聊天程序为了简化程序和系统结构,将“客户端——服务器——客户端”的数据传输方式改为“客户端——服务器”的模式。
7.程序应该具有图形界面,要具备聊天程序的基本雏形。
二设计原理与方法1. TCP/IP协议的介绍TCP/IP(传输控制协议/网际协议)是互联网中的基本通信语言或协议。
在私网中,它也被用作通信协议。
当你直接网络连接时,你的计算机应提供一个TCP/IP程序的副本,此时接收你所发送的信息的计算机也应有一个TCP/IP程序的副本。
TCP/IP是一个两层的程序。
高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。
这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。
低层是网际协议,它处理每个包的地址部分,使这些包正确的到达目的地。
网络上的网关计算机根据信息的地址来进行路由选择。
即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。
TCP/IP使用客户端/服务器模式进行通信。
TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。
TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。
正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。
许多用户熟悉使用TCP/IP协议的高层应用协议。
包括万维网的超文本传输协议(HTTP),文件传输协议(FTP),远程网络访问协议(Telnet)和简单邮件传输协议(SMTP)。
用java语言编一个聊天小程序 要求: 使用图形用户界面。 能实现一个聊天室中多人聊天。 可以两人私聊。 提示:使用socket通信 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.*;
public class test { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { DrawFrame frame = new DrawFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); }
} class DrawFrame extends JFrame { public DrawFrame() {
setLocation(100,100); setTitle("我的QQ"); setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT); //添加菜单项…… JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu edit = new JMenu("菜单"); menuBar.add(edit); JMenuItem sset = new JMenuItem("设置"); JMenuItem eexit = new JMenuItem("退出"); edit.add(sset); edit.addSeparator(); edit.add(eexit); final DrawPanel pan = new DrawPanel(); //添加设置对话框 sset.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event) { final JFrame jf = new JFrame("设置"); jf.setSize(300,150); jf.setLocation(200,200); jf.setResizable(false); jf.setVisible(true); JPanel jp = new JPanel(); final JTextField jt1 = new JTextField(20); final JTextField jt2 = new JTextField(20); final JTextField jt3 = new JTextField(20); jp.add(new JLabel("聊天端口:")); jf.add(jp); jp.add(jt1); jp.add(new JLabel("目标地址:")); jp.add(jt2); jp.add(new JLabel("文件端口:")); jp.add(jt3); JButton jb1 = new JButton("确定"); JButton jb2 = new JButton("取消"); jp.add(jb1); jp.add(jb2); //设置“设置”按钮 jb1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ try{ int cat1 = Integer.parseInt(jt1.getText()); pan.setCat1(cat1);//设置对话端口号 int cat2 = Integer.parseInt(jt3.getText()); pan.setCat2(cat2);//设置文件传输端口号 String s = jt2.getText(); pan.setIP(s);//设置IP地址 pan.ls(); } catch(Exception e) { e.printStackTrace(); } jf.dispose();//关闭对话框 } }); jb2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ jf.dispose(); } }); } }); eexit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event){ System.exit(0); } });
add(pan); pack(); } public static final int DEFAULT_WIDTH = 400; public static final int DEFAULT_HEIGHT = 400; } class DrawPanel extends JPanel { DatagramSocket ds; DatagramPacket dp; DatagramSocket ds1; DatagramPacket dp1; Thread thread; Thread thread1; TextArea textArea1 = new TextArea(10,50); TextArea textArea2 = new TextArea(10,50); JTextField textField = new JTextField(50); static int cat1,cat2; static String IP; public void setCat1(int cat) { cat1 = cat; } public void setCat2(int cat) { cat2 = cat; } public void setIP(String ip) { IP=ip; } //重置端口号 public void ls() { try { ds = new DatagramSocket(cat1); ds1 = new DatagramSocket(cat2); } catch(Exception e) { e.printStackTrace(); } thread = new Thread(new Runnable() { public void run() { byte buf[] = new byte[1024];//聊天每次发送文字不能超过1024b DatagramPacket dp = new DatagramPacket(buf,buf.length);
while(true) { try { ds.receive(dp); textArea1.setText(textArea1.getText()+ new String(buf,0,dp.getLength()) + "\r\n"); } catch(Exception e) { e.printStackTrace(); } } } }); thread.start(); } public DrawPanel() {
setLayout(new BorderLayout()); JTabbedPane card = new JTabbedPane();
textArea1.setEditable(false); card.add("聊天",textArea1); add(card,BorderLayout.NORTH);
JPanel center = new JPanel(); center.setLayout(new FlowLayout()); center.add(new JLabel("昵称:"));
center.add(textField); add(center,BorderLayout.CENTER);
JPanel south = new JPanel(); south.setLayout(new BorderLayout());
south.add(textArea2,BorderLayout.NORTH); JPanel south2 = new JPanel(); south2.setLayout(new FlowLayout()); JButton sent = new JButton("传送文件"); JButton receive = new JButton("接收文件"); //receive.setEnabled(false); JButton sentMessage = new JButton("发送"); south2.add(sent); south2.add(receive);
south2.add(sentMessage); add(south,BorderLayout.SOUTH); south.add(south2,BorderLayout.SOUTH); //发送信息的按钮的监听器: sentMessage.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event)