栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

简单聊天室客户端界面的实现(ChatClient.java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单聊天室客户端界面的实现(ChatClient.java)

1.界面要求如下:

2.选择左侧列表的好友,编辑信息后点击发送将信息传到聊天记录上,如下:

                                      

3.上代码:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class ChatClient extends JFrame implements ActionListener{
	String[] name = {"兵临城下", "建国", "蛋蛋", "王小仙", "李小健"};
	
	JList jList = new JList(name);
	
	String person;
	
	JTextArea jta_1 = new JTextArea(8, 20);
	JTextArea jta_2 = new JTextArea(2, 30);
	
	JButton jb_sent = new JButton("发送");
	JButton jb_clear = new JButton("清空");
	
	JPanel jp_1 = new JPanel();
	JPanel jp_2 = new JPanel();
	JPanel jp_3 = new JPanel();
	JPanel jp_4 = new JPanel();
	
	public ChatClient() {
		super("聊天室客户端");
		init();
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	
	public void init() {
		//组装视图
		this.setLayout(new BorderLayout());
		this.setSize(370, 340);
		
		//组装顶部
		jList.setFixedCellWidth(90);
		jList.setFixedCellHeight(31);
		TitledBorder tb_1 = new TitledBorder("好友列表");
		jList.setBorder(tb_1);
		jp_1.add(jList);
		
		TitledBorder tb_2 = new TitledBorder("聊天记录");
		jta_1.setBorder(tb_2);
		jp_2.add(new JScrollPane(jta_1));
		
		//组装底部
		TitledBorder tb_3 = new TitledBorder("请输入文字:");
		jta_2.setBorder(tb_3);
		jp_4.add(jb_sent);
		jp_4.add(jb_clear);
		
		Box vBox = Box.createVerticalBox();
		vBox.add(jta_2);
		vBox.add(jp_4);
		jp_3.add(vBox);
		
		this.add(jp_1, BorderLayout.WEST);
		this.add(jp_2);
		this.add(jp_3, BorderLayout.SOUTH);
		
		//注册监听器
		jb_sent.addActionListener(this);
		jb_clear.addActionListener(this);
		
		//注册监听器
		jList.addListSelectionListener(new ListSelectionListener() {
			
			@Override
			public void valueChanged(ListSelectionEvent e) {
				List selectedValuesList = jList.getSelectedValuesList();
				
				person = "";
				for(String str : selectedValuesList) {
					StringBuilder sb = new StringBuilder(person);
					sb.append(str).append(",");
					person = sb.toString();
				}
				//删掉最后一个逗号
				person =person.substring(0, person.length() - 1);	
			}
		});
	}
	
	public static void main(String[] args) {
		new ChatClient();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		Object cmd = e.getSource();
		if(cmd == jb_sent) {
			String str = jta_2.getText();
			if("".equals(str)) {
				JOptionPane.showMessageDialog(jb_sent, "请重新输入!");
				return;
			}
			else {
				jta_1.append("我对" + person + "说:" + str + "n");
				jta_2.setText("");
				return;
			}
		}
		if(cmd == jb_clear) {
			jta_1.setText("");
			return;
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号