📄 chatroomclientframe.java
字号:
package MyChatRoom;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class ChatRoomClientFrame {
private JFrame jf;
private JTextArea jta;
private JTextField jtf;
private JButton jb;
private JLabel label;
private String name;
public ChatRoomClientFrame() {
jf = new JFrame("聊天室客户端v1.0");
String serverIp = JOptionPane.showInputDialog(jf,"请输入IP:");
int port = Integer.parseInt(JOptionPane.showInputDialog(jf,"请输入端口号:"));
name = JOptionPane.showInputDialog(jf,"请输入姓名:");
ChatRoomClient.init(serverIp, port);
label = new JLabel(name+":");
jb = new JButton("发送");
jtf = new JTextField(20);
jta = new JTextArea(20,40);
new RecieveMessageThread().start();
init();
addEventHandle();
}
public void init() {
jf.setLayout(new BorderLayout());
JScrollPane jsp = new JScrollPane(jta);
jf.add(jsp,BorderLayout.CENTER);
JPanel jp = new JPanel();
jp.add(label);
jp.add(jtf);
jp.add(jb);
jf.add(jp,BorderLayout.SOUTH);
}
public void addEventHandle() {
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChatRoomClient.pw.println(label.getText()+jtf.getText());
ChatRoomClient.pw.flush();
}
});
jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
int op = JOptionPane.showConfirmDialog(jf, "退出程序将关闭连接,确定退出?","退出",JOptionPane.YES_NO_OPTION);
if(op==JOptionPane.YES_OPTION) {
ChatRoomClient.pw.println("%exit%"+name);
ChatRoomClient.pw.flush();
}
try {
ChatRoomClient.s.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
}
public void showMe() {
jf.pack();
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}
class RecieveMessageThread extends Thread{
public void run() {
while(true) {
String str;
try {
str = ChatRoomClient.br.readLine();
jta.append(str+"\n");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -