package com.test;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.border.TitledBorder;
@SuppressWarnings("serial")
public class Client extends JFrame implements ActionListener{
private JTextArea txtSend;
private JTextArea txtMsg;
private JButton btnSend,btnHistory;
@SuppressWarnings("rawtypes")
private JList lUser;
private Vector<String> list;
private DataOutputStream outputStream;
private Socket socket;
private String userName;
private Parameterx parameterx;
public Client(Socket socket, String name){
this.userName = name;
this.socket = socket;
setBounds(200,300, 600, 400);
setLayout(new BorderLayout());
setTitle(name + "的聊天室");
init();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public void init(){
txtSend = new JTextArea(3, 10);
txtMsg = new JTextArea();
txtMsg.setEditable(false);
btnSend = new JButton("发送");
btnHistory = new JButton("消息日志");
btnHistory.addActionListener(this);
btnSend.addActionListener(this);
JScrollPane jspSend = new JScrollPane(txtSend);
jspSend.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
JPanel p1 = new JPanel(new BorderLayout());
p1.setBorder(new TitledBorder("对话框"));
JPanel pp = new JPanel(new FlowLayout(FlowLayout.RIGHT));
pp.add(btnHistory);
p1.add(pp, "North");
p1.add(jspSend,"Center");
p1.add(btnSend, "East");
list = new Vector<String>();
list.add(userName);
lUser = new JList(list);
JScrollPane left = new JScrollPane(lUser);
left.setBorder(new TitledBorder("在线用户"));
JScrollPane right = new JScrollPane(txtMsg);
right.setBorder(new TitledBorder("消息框"));
JSplitPane p2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left,right);
p2.setDividerLocation(100);
add(p2, "Center");
add(p1, "South");
parameterx = new Parameterx();
try {
outputStream = new DataOutputStream(socket.getOutputStream());
outputStream.writeUTF("renew|" + userName);
outputStream.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
new Thread(new ClientThread(socket, txtMsg, list, txtSend, lUser)).start();
}
@SuppressWarnings("static-access")
public void actionPerformed(ActionEvent e){
if(e.getSource() == btnHistory){
//this.dispose();
new ChatHistory();
}else if(e.getSource() == btnSend){
String strSend = txtSend.getText().trim();
if(strSend.equals("")){
JOptionPane.showMessageDialog(null, parameterx.nomessage);
}else{
try{
outputStream = new DataOutputStream(socket.getOutputStream());
outputStream.writeUTF("message|" + strSend + "|" + userName);
outputStream.flush();
}catch (IOException ef) {
// TODO: handle exception
}
}
}
}
}
最近下载更多
taoshen95 LV16
2024年1月19日
漫步的海星 LV4
2023年8月21日
2017143155 LV12
2023年6月24日
wanglinddad LV55
2022年6月18日
微信网友_6003487859068928 LV5
2022年6月16日
zhendong LV7
2022年3月6日
dfz12345 LV4
2021年12月8日
胡萝北呀 LV3
2021年11月28日
ComeDebug LV6
2021年9月6日
忧麦紫 LV18
2021年6月26日
最近浏览更多
微信网友_7556333806571520
6月16日
暂无贡献等级
13133117021 LV5
2024年12月26日
srl2881552 LV10
2024年11月25日
微信网友_7004855557083136 LV1
2024年5月22日
taoshen95 LV16
2024年1月19日
陈小灏 LV18
2023年12月27日
求学的熊猫 LV11
2023年12月25日
wuxin427
2023年12月20日
暂无贡献等级
fuyouou LV5
2023年6月29日
2017143155 LV12
2023年6月24日

