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

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

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;
		}
	}
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/920336.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存