📄 qqchatframe.java
字号:
package NewQQ;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.Socket;
import java.util.HashMap;
import javax.swing.*;
public class QQChatFrame {
JFrame jframe;
JPanel jp;
TextArea jta;
JTextField jtf;
JComboBox jcb;
String name;
ObjectOutputStream sendmsg;
Socket clientsocket;
HashMap friends;
public QQChatFrame(String name,ObjectOutputStream sendmsg,HashMap friends,Socket clientsocket){
this.name = name;
this.sendmsg = sendmsg;
this.friends = friends;
}
public void creat(){
class QQClientWindowListener extends WindowAdapter{
public void windowClosing(WindowEvent e){
//向服务器发出退出请求
try {
QQMessage ffsendmessage = new QQMessage();
ffsendmessage.setType(6);
ffsendmessage.setSender(name);
sendmsg.writeObject(ffsendmessage);
sendmsg.flush();
} catch (IOException e1) {}
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class QQClientActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
Object com = e.getSource();
if(com instanceof JComboBox){
JComboBox tempjcb = (JComboBox)com;
String recver = (String)tempjcb.getSelectedItem();
tempjcb.setSelectedIndex(0);
if(!recver.equals("所有人")){
SingleFrame sf = (SingleFrame)friends.get(recver);
if(sf==null){
sf = new SingleFrame(recver,sendmsg,friends,name);
sf.init();
friends.put(recver,sf);
sf.jframe.toFront();
}
}
}
else{
QQMessage sendmessage = new QQMessage();
sendmessage.setType(3);
sendmessage.setSender(name);
sendmessage.setMessage(jtf.getText());
try {
sendmsg.writeObject(sendmessage);
sendmsg.flush();
} catch (IOException e1) {}
jtf.setText("");
}
}
}
jframe = new JFrame(name);
jframe.setSize(400,300);
jta = new TextArea();
jta.setEditable(false);
jta.setFocusable(false);
jp = new JPanel(new FlowLayout());
jtf = new JTextField(15);
jcb = new JComboBox();
jp.add(jcb);
jp.add(jtf);
jcb.addItem("所有人");
jframe.add(jta);
jframe.add(jp,BorderLayout.SOUTH);
jframe.addWindowListener(new QQClientWindowListener());
QQClientActionListener qqclientlistener = new QQClientActionListener();
jtf.addActionListener(qqclientlistener);
jcb.addActionListener(qqclientlistener);
jframe.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -