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:下拉列表

  • 7
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值