实现好友之间聊天

本文介绍了一个基于Java的即时聊天应用程序界面设计,包括文本域、输入框和按钮等组件的实现,以及如何通过滚动条改善用户体验。此外,还详细描述了如何使用ActionListener和Runnable接口来处理用户输入和接收服务器消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*package com.yychatclient.view;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import com.yychat.model.Message;
import com.yychatclient.controller.ClientConnect;

public class FriendChat extends JFrame implements ActionListener,Runnable{//动作监听器

//中间部分
JScrollPane jsp;//滚动条
JTextArea jta;//文本域


//南部部分
JPanel jp;//面板
JTextField jtf;//一行文本
JButton jb;

String sender;
String receiver;
public FriendChat(String sender,String receiver){//自定义构造方法
	this.sender=sender;
	this.receiver=receiver;
	jta = new JTextArea();//文本区域
	jta.setEditable(false);//不允许在文本域进行编辑
	jta.setForeground(Color.red);//显体颜色
	jsp = new JScrollPane(jta);//滚动条只可以在构造方法里面定义组件
	this.add(jsp);//加入窗口中
	
	jp = new JPanel();
	jtf = new JTextField(15);//字符长度
	jtf.setForeground(Color.red);;
	jb = new JButton("发送");
	jb.addActionListener(this);
	jp.add(jtf);
	jp.add(jb);
	this.add(jp,"South");
	this.setSize(350, 240);
	this.setTitle(sender+"正在和"+receiver+"聊天");
	this.setLocationRelativeTo(null);//居中显示窗口
	this.setVisible(true);
	
}
public static void main(String[] args){
	//FriendChat friendChat=new FriendChat("1","2");
}

@Override
public void actionPerformed(ActionEvent arg0) {//事件处理代码
 if(arg0.getSource()==jb) {
	 jta.append(jtf.getText()+"\r\n");
	 
	 //向服务器 发送聊天信息
	 Message mess=new Message();
	 mess.setSender(sender);
	 mess.setReceiver(receiver);
	 mess.setContent(jtf.getText());
	 mess.setMessageType(Message.message_Common);
	 ObjectOutputStream oos;
	try {
		oos = new ObjectOutputStream(ClientConnect.s.getOutputStream());
		oos.writeObject(mess);
	} catch (IOException e) {
		e.printStackTrace();
	}
	 
 }
	
}
@Override
public void run() {
	ObjectInputStream ois;
	try {
		ois=new ObjectInputStream(ClientConnect.s.getInputStream());
		Message mess=(Message)ois.readObject();
		String showMessage=mess.getSender()+"对"+mess.getReceiver()+"说:"+mess.getContent();
		System.out.println(showMessage);
		jta.append(showMessage+"\r\n");
	} catch (IOException | ClassNotFoundException e) {
		e.printStackTrace();
	}
} 

}*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值