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 ...
最新文章
- python三大神器_Python之旅:Python上古三大神器之一PIP①
- 何玺对话苏宁金融洪蜀宁:区块链是颠覆性技术,意义远超互联网
- jwt token 过期刷新_不要把 JWT 用作 session
- mfc编译html,自己编译 MFC 库
- 程序大佬和菜鸟的区别,太准确了!
- express利用nodemailer发送邮件(163邮箱)
- Avalonia跨平台入门第九篇之控件置顶和置底
- 如何将linux内核的带级别控制的printk内容打印出来
- 企业网站建设注意事项
- 推荐WordPress 必备的常用插件及插件功能介绍
- DSP技术及应用 知识点整理
- 求100以内奇数的和
- xul转换html,ExportHTMLFolderMod.uc.xul
- 经典指标:SAR算法和应用
- 程序员接私单被警方抓走,企业应不应该起诉程序员赔偿?
- Vero praesentium odio suscipit dolor.Eos accusamus rem tempore.
- 各大搜索引擎蜘蛛名称
- 马少平、周枫、王小川、楼天城、唐文斌……清华计算机系与AI的40年
- GB 9706.1-2020和GB9706.1-2007对照表
- NUIST_OJ P1098素数因子