这是上学期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——如何写一个简单的聊天框相关推荐

  1. C语言能干什么?手把手教你写一个简单的聊天软件

    一.服务端代码 因为端口号容易被占用的原因,所以IP地址和端口号采用参数传递的方法,即 int main(int argc,char **argv) 1.头文件 #include <stdio. ...

  2. Java语言写一个简单的学生信息管理系统,通过JDBC连接数据库对学生信息进行增删改查,采用三层思想和DBUtils第三方框架。

    我把源代码和sql文件放GitHub上了,你们可以自行下载:https://github.com/fenglily1/student. 有问题可以留言或私信,我看到就会回. 进阶版加上页面的管理系统在 ...

  3. java程序 购物车_用java代码写一个简单的网上购物车程序

    1 需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法.2 3 3.写一个购物车类,有添加商品方法.查看订单信息,删 ...

  4. Vue初体验(七)使用Vue实现一个简单的聊天框

    1.实践是检验真理的唯一标准,现在我们做一个简易的聊天窗口,有一个input框,用于用户输入,一个按钮button,用于把用户的输入提交上去,然后又一个列表ul,用于展示我们每次提交的消息. 2.通过 ...

  5. 通过java程序写一个简单的创造游戏角色的程序

    一.题目分析: 题目要求,编写一个简化的创造游戏角色的程序,游戏角色应有:姓名,性别,种族,职业,力量,敏捷,体力,智力,智慧,生命值,魔法值等属性. 题目思路:根据题目可知,无论创建什么种族角色,都 ...

  6. java如何写一个简单的定时任务?

    使用java自带类Timer 通过import java.util.Timer导入Timer类,定时任务实现通过Timer的scheduler方法,scheduler方法包括三个入参,分别是定时任务, ...

  7. Java 手写一个简单计算器(1)

    用java的awt和swing实现了界面, 结构比较简单,用GridLayout布局实现 文本框+3行按钮+3行按钮: 按钮用字符串数组和for循环 后两个用JPanel存放 然后加到框架中即可 由于 ...

  8. 用Java语言写一个简单的值日生

    public class Student {protected String name;public static void main(String[] args) {while(true) {//用 ...

  9. java Swing 做一个简单的输入文本框

    java Swing做一个简单的文本输入框, 新建一个SwingDemo类: // //java swing做一个简单的文本框 //Created by lee_1310 on 2019.03.29 ...

最新文章

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

热门文章

  1. python语音转文字api_大数据分析Python PyAudio库语音API转文字教程
  2. [足式机器人]Part1 关于动物和运动体的研究Ch08——【Legged Robots that Balance 读书笔记】
  3. Thinkpad T460P安装win7
  4. 设置Typora图床(Github)
  5. 抖音小店需要自己囤货吗|成都集光共创
  6. 2021年育婴员(五级)模拟考试题及育婴员(五级)复审模拟考试
  7. long型输入与输出
  8. 进入大学应该做的第一件事
  9. 新手入门WPF之DataGrid控件(一)
  10. 【洛谷_P1983】车站分级