62,628
社区成员
发帖
与我相关
我的任务
分享
package cn.ntrj;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Chat2 {
JFrame f = new JFrame();
JTextArea show = new JTextArea();
JTextArea input = new JTextArea();
JList list = new JList();
DefaultListModel dlm = new DefaultListModel();
private Socket s;
public void setSocket(Socket value) {
s = value;
System.out.println("群聊端口为:" + s);
}
private String message;
public void setmessage(String value) {
message = value;
System.out.println("群聊收到的:" + message);
show.append("\n" + message);
//System.exit(0);
}
private String jugemessage;
public void setjuge(String value) {
jugemessage = value;
System.out.println(jugemessage);
String juge = jugemessage.split("/")[0];
String user = jugemessage.split("/")[1];
if(juge.equals("add"))
{
dlm.addElement(user);
}
else if(juge.equals("exit"))
{
dlm.removeElement(user);
}
}
public void go()
{
list.setFont(new Font("微软雅黑",Font.PLAIN,30));
list.setModel(dlm);
JScrollPane scrollPane = new JScrollPane(list,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBounds(500, 105, 180, 450);
JButton send = new JButton("发送");
JButton cancel = new JButton("关闭");
send.setFont(new Font("微软雅黑",Font.PLAIN,15));
cancel.setFont(new Font("微软雅黑",Font.PLAIN,15));
send.addActionListener(new ButtonHandler());
cancel.addActionListener(new ButtonHandler());
try {
File f = new File("聊天记录(群聊).txt");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
while(br.ready())
show.append(br.readLine() + "\n" );
} catch (Exception e) {
e.printStackTrace();
}
show.setCaretPosition(show.getText().length());
JLabel qunliao = new JLabel("群聊");
qunliao.setFont(new Font("微软雅黑",Font.PLAIN,30));
JLabel qunliaochengyuan = new JLabel("群聊成员");
qunliaochengyuan.setFont(new Font("微软雅黑",Font.PLAIN,20));
show.setFont(new Font("微软雅黑",Font.PLAIN,20));
show.setLineWrap(true);
JScrollPane SHOW = new JScrollPane(show,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
input.setFont(new Font("微软雅黑",Font.PLAIN,20));
input.setLineWrap(true);
JScrollPane INPUT = new JScrollPane(input,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
qunliao.setBounds(10, 5, 80, 80);
qunliaochengyuan.setBounds(500, 73, 80, 30);
SHOW.setBounds(0, 80, 500, 300);
INPUT.setBounds(0, 380, 500, 175);
send.setBounds(390, 520, 100, 30);
cancel.setBounds(280, 520, 100, 30);
f.add(qunliao);
f.add(qunliaochengyuan);
f.add(send);
f.add(cancel);
f.add(SHOW);
f.add(INPUT);
f.add(scrollPane);
f.setLayout(null);
f.setTitle("群聊");
f.setSize(700, 600);
f.setResizable(true);
f.setVisible(true);
}
class ButtonHandler implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if(label.equals("关闭"))
{
f.dispose();
}
if(label.equals("发送"))
{
SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
show.append(df.format(new Date()) + "\n" + input.getText()+ "\n" );
try {
File f = new File("聊天记录(群聊).txt");
FileWriter fw = new FileWriter(f,true);
PrintWriter pw = new PrintWriter(fw);
pw.println(df.format(new Date()) + "\n" + input.getText());
pw.close();
} catch (Exception e2) {
e2.printStackTrace();
}
try {
System.out.println("!!");
OutputStream os = s.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
PrintWriter pw = new PrintWriter(osw,true);
pw.println("group chat" + "/" + new QQLogin().username + "/" + input.getText());
System.out.println("已发送服务端");
} catch (Exception e2) {
e2.printStackTrace();
}
}
input.setText("");
}
}
public static void main(String[] args) {
Chat2 chat2 = new Chat2();
chat2.go();
}
}