JAVA——如何写一个简单的聊天框
这是上学期JAVA选修课课下的一道简单的线上家庭作业题,题目描述如下:
总的来说就是要按照它的描述写一个聊天室界面。由于是选修课要求不高,老师只要求我们写出大致界面即可不用实现具体功能,不过闲来无事我还是给它加了一个简单的监听器用以传递消息。话不多说上代码:
一、界面类:
1、框架与设置布局就不说了
//框架JFrame jFrame = new JFrame("Chat Display ClientA");jFrame.setSize(500, 500);jFrame.setResizable(false);jFrame.setLocationRelativeTo(null);jFrame.setDefaultCloseOperation(3);//设置流式布局jFrame.setLayout(new FlowLayout());
2、设置并完善菜单栏
//设置菜单栏并添加到界面JMenuBar jMenuBar = new JMenuBar();jMenuBar.setPreferredSize(new Dimension(450, 30));jFrame.add(jMenuBar);//在菜单栏中添加菜单JMenu jMenu01 = new JMenu("File");JMenu jMenu02 = new JMenu("Action");jMenuBar.add(jMenu01);jMenuBar.add(jMenu02);//给对应的菜单设置多个选项JMenuItem jMenuItem01 = new JMenuItem("Save");JMenuItem jMenuItem02 = new JMenuItem("Eixt");jMenu01.add(jMenuItem01);jMenu01.add(jMenuItem02);
此段代码最终实现的效果如下:
3、设置与关键字相链接的文本框
//设置文本框并设置为不可编辑JTextArea jTextArea01 = new JTextArea(18, 40);jTextArea01.setEditable(false);JTextArea jTextArea02 = new JTextArea(18, 40);jTextArea02.setEditable(false);//两个文本框与不同关键字链接,并重合于一个区域JTabbedPane jTabbedPane = new JTabbedPane(JTabbedPane.BOTTOM);jTabbedPane.add("public", jTextArea01);jTabbedPane.add("private", jTextArea02);jFrame.add(jTabbedPane);
此段代码最终实现的效果如下:
4、设置好友列表与编辑发送区域
//设置发送者标签和好友列表并添加到界面JLabel jLabel01 = new JLabel("Send To");String listData[] = {"长长","卓洋","浩浩","public"};JComboBox<String> jComboBox = new JComboBox<>(listData);jComboBox.setPreferredSize(new Dimension(400, 30));jFrame.add(jLabel01);jFrame.add(jComboBox);//设置编辑、发送信息的区域并添加到界面JLabel jLabel02 = new JLabel("Message");JTextField jTextField = new JTextField();jTextField.setPreferredSize(new Dimension(330, 30));JButton jButton = new JButton("Send");jFrame.add(jLabel02);jFrame.add(jTextField);jFrame.add(jButton);
此段代码最终实现效果如下:
5、设置可见并给发送按钮加监听器
//设置可见jFrame.setVisible(true);//加监听器并传参CListener listener = new CListener(jTextField,jComboBox,jTextArea01,jTextArea02);//给发送按钮加监听器jButton.addActionListener(listener);
二、监听器类
很简单的监听器,直接上代码:
public class CListener implements ActionListener{JTextField jTextField = new JTextField();JComboBox <String> jComboBox = new JComboBox<>();JTextArea jTextArea01 = new JTextArea();JTextArea jTextArea02 = new JTextArea();//构造函数传参public CListener(JTextField jTextField , JComboBox<String> jComboBox, JTextArea jTextArea01,JTextArea jTextArea02){this.jTextField = jTextField;this.jComboBox = jComboBox;this.jTextArea01 = jTextArea01;this.jTextArea02 = jTextArea02;}public void actionPerformed(ActionEvent e){if(e.getActionCommand().equals("Send")){ //监听到点击了发送按钮if(jComboBox.getSelectedItem().equals("长长") || jComboBox.getSelectedItem().equals("卓洋")|| jComboBox.getSelectedItem().equals("浩浩")){ //如果是发给好友则在private文本框中显示发送信息jTextArea02.setText(jTextField.getText());}else if(jComboBox.getSelectedItem().equals("public")){ //否则在public文本框中显示发送信息jTextArea01.setText(jTextField.getText());}}}
}
最终实现效果如下:
如果在好友列表中任意选择一位好友,点击“Send”按钮发送信息,则信息会显示在private对应的文本框中:
如果在好友列表中选择public,点击“Send”按钮发送信息,则信息会显示在public对应的文本框中:
That’s all,over!
小结:
JMenuBar:菜单栏
JMenu:菜单栏中的各个菜单
JMenuItem:菜单中的各个选项
JTextArea:文本框
JTextArea中的setEditable(true/false)方法:设置文本框是否可编辑
JTabbedPane:可让多个文本框重合的区域
JTabbedPane中的add(String,JTextArea)方法:将文本框与某个关键字链接为一个整体,并加入到各文本框重合区域
JComboBox:下拉列表
JAVA——如何写一个简单的聊天框相关推荐
- C语言能干什么?手把手教你写一个简单的聊天软件
一.服务端代码 因为端口号容易被占用的原因,所以IP地址和端口号采用参数传递的方法,即 int main(int argc,char **argv) 1.头文件 #include <stdio. ...
- Java语言写一个简单的学生信息管理系统,通过JDBC连接数据库对学生信息进行增删改查,采用三层思想和DBUtils第三方框架。
我把源代码和sql文件放GitHub上了,你们可以自行下载:https://github.com/fenglily1/student. 有问题可以留言或私信,我看到就会回. 进阶版加上页面的管理系统在 ...
- java程序 购物车_用java代码写一个简单的网上购物车程序
1 需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法.2 3 3.写一个购物车类,有添加商品方法.查看订单信息,删 ...
- Vue初体验(七)使用Vue实现一个简单的聊天框
1.实践是检验真理的唯一标准,现在我们做一个简易的聊天窗口,有一个input框,用于用户输入,一个按钮button,用于把用户的输入提交上去,然后又一个列表ul,用于展示我们每次提交的消息. 2.通过 ...
- 通过java程序写一个简单的创造游戏角色的程序
一.题目分析: 题目要求,编写一个简化的创造游戏角色的程序,游戏角色应有:姓名,性别,种族,职业,力量,敏捷,体力,智力,智慧,生命值,魔法值等属性. 题目思路:根据题目可知,无论创建什么种族角色,都 ...
- java如何写一个简单的定时任务?
使用java自带类Timer 通过import java.util.Timer导入Timer类,定时任务实现通过Timer的scheduler方法,scheduler方法包括三个入参,分别是定时任务, ...
- Java 手写一个简单计算器(1)
用java的awt和swing实现了界面, 结构比较简单,用GridLayout布局实现 文本框+3行按钮+3行按钮: 按钮用字符串数组和for循环 后两个用JPanel存放 然后加到框架中即可 由于 ...
- 用Java语言写一个简单的值日生
public class Student {protected String name;public static void main(String[] args) {while(true) {//用 ...
- java Swing 做一个简单的输入文本框
java Swing做一个简单的文本输入框, 新建一个SwingDemo类: // //java swing做一个简单的文本框 //Created by lee_1310 on 2019.03.29 ...
最新文章
- 如何使用TensorCores优化卷积
- 【flutter】把Google官方的历史时间demo跑起来
- TIOBE 9月编程语言排行榜
- explicit_defaults_for_timestamp参数的专题报告
- CCF2016.4 - A题
- Leetcode 583.两个字符串的删除操作
- win10下安装和卸载Ubuntu双系统
- 云播自带解析php,使用PHP SDK,web端的华为云视频点播接入,加密视频播放的坑与解决方案-全代码篇...
- underscore源码剖析之整体架构
- ASP.NET Core——身份验证UI安装
- vscode下的好用插件收集
- python动态加载模块有什么用_人生苦短我用python(02)动态加载模块
- html如何隐藏盒子的边框线,用DIV和CSS做一个实线边框的红色盒子
- 学python语言有前途吗-Python语言是什么?学Python语言有前途吗?
- Alios-Things之wifi模块二次开发-(1)搭建Alios-Things开发环境(基于ubuntu 16.0.4)
- 基于JavaEE的人力资源管理系统的设计与实现任务书与开题报告
- 数据库-mysql MHA集群方案测试
- kindle 安卓 app下载的电子书放在什么文件夹?
- HZAU毕设之装订边边距32 mm、非装订边边距25 mm的操作
- linux系统安全应急响应