📄 clientframe.java
字号:
package chatnew;
import java.awt.BorderLayout;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.*;
import java.io.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author 乔聪
* @version 1.0
*/
public class ClientFrame extends JFrame {
Client client=null;
FileSender fileSender=null;
FileReceiver fileReceiver=null;
String fileTransFlag=null;//文件发送接收标记
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
JPanel jPanel5 = new JPanel();
JLabel jLabel1 = new JLabel();
JTextField jip = new JTextField();
JLabel jLabel2 = new JLabel();
JTextField jport = new JTextField();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JLabel jLabel3 = new JLabel();
List list1 = new List();
BorderLayout borderLayout2 = new BorderLayout();
JTextField jnickname = new JTextField();
JButton jButton3 = new JButton();
JTextField jsend = new JTextField();
JButton jButton4 = new JButton();
BorderLayout borderLayout3 = new BorderLayout();
JPanel jPanel6 = new JPanel();
JButton jButton5 = new JButton();
JButton jButton6 = new JButton();
GridLayout gridLayout1 = new GridLayout();
List list2 = new List();
BorderLayout borderLayout4 = new BorderLayout();
JButton jButton7 = new JButton();
JButton jButton8 = new JButton();
JCheckBox jCheckBox1 = new JCheckBox();
JPanel jPanel7 = new JPanel();
JTextField jdir = new JTextField();
GridLayout gridLayout2 = new GridLayout();
JButton jButton9 = new JButton();
JButton jButton10 = new JButton();
JLabel jLabel4 = new JLabel();
JButton jButton11 = new JButton();
JFileChooser fileChooser=new JFileChooser();
public ClientFrame() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
getContentPane().setLayout(borderLayout1);
jButton1.setMnemonic('D');
jButton1.addActionListener(new ClientFrame_jButton1_actionAdapter(this));
jButton2.setMnemonic('E');
jButton2.addActionListener(new ClientFrame_jButton2_actionAdapter(this));
jButton6.setMnemonic('S');
jButton6.addActionListener(new ClientFrame_jButton6_actionAdapter(this));
jButton5.setMnemonic('V');
jButton5.addActionListener(new ClientFrame_jButton5_actionAdapter(this));
jButton4.setMnemonic('F');
jButton4.addActionListener(new ClientFrame_jButton4_actionAdapter(this));
jButton3.setMnemonic('N');
jButton3.addActionListener(new ClientFrame_jButton3_actionAdapter(this));
jsend.addActionListener(new ClientFrame_jTextField4_actionAdapter(this));
jButton7.setText("jButton7");
jButton8.setMnemonic('C');
jButton8.setText("清空(C)");
jButton8.addActionListener(new ClientFrame_jButton8_actionAdapter(this));
jCheckBox1.setSelected(true);
jCheckBox1.setText("对所有人");
jdir.setText("C:\\");
jPanel7.setLayout(gridLayout2);
gridLayout2.setColumns(1);
gridLayout2.setRows(5);
jButton9.setMnemonic('T');
jButton9.setText("发送(T)");
jButton9.addActionListener(new ClientFrame_jButton9_actionAdapter(this));
jButton10.setMnemonic('K');
jButton10.setText("开始(K)");
jButton10.addActionListener(new ClientFrame_jButton10_actionAdapter(this));
jLabel4.setText("传输文件:");
jButton11.setMnemonic('R');
jButton11.setText("接收(R)");
jButton11.addActionListener(new ClientFrame_jButton11_actionAdapter(this));
this.getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);
jip.setText("192.168.0.50");
jip.setColumns(15);
jLabel2.setText("端口:");
jport.setText("9999");
jport.setColumns(5);
jButton1.setText("登陆(D)");
jButton2.setText("退出(E)");
jLabel3.setText("在线用户列表:");
jPanel2.setLayout(borderLayout2);
jnickname.setText("小松鼠");
jnickname.setColumns(5);
jButton3.setText("修改昵称(N)");
jsend.setText("大家好");
jsend.setColumns(40);
jButton4.setText("发送(F)");
jPanel4.setLayout(borderLayout3);
jButton5.setText("查看(V)");
jButton6.setText("保存(S)");
jPanel6.setLayout(gridLayout1);
gridLayout1.setColumns(1);
gridLayout1.setRows(3);
jPanel5.setLayout(borderLayout4);
jPanel1.add(jLabel1);
jPanel1.add(jip);
jPanel1.add(jLabel2);
jPanel1.add(jport);
jPanel1.add(jButton1);
jPanel1.add(jButton2);
jLabel1.setText("服务器IP地址:");
this.getContentPane().add(jPanel2, java.awt.BorderLayout.WEST);
jPanel2.add(list1, java.awt.BorderLayout.CENTER);
this.getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH);
jPanel3.add(jnickname);
jPanel3.add(jButton3);
jPanel3.add(jsend);
jPanel3.add(jButton4);
this.getContentPane().add(jPanel4, java.awt.BorderLayout.EAST);
jPanel6.add(jButton6, null);
jPanel6.add(jButton8);
jPanel6.add(jButton5, null);
this.getContentPane().add(jPanel5, java.awt.BorderLayout.CENTER);
jPanel5.add(list2, java.awt.BorderLayout.CENTER);
jPanel2.add(jLabel3, java.awt.BorderLayout.NORTH);
jPanel2.add(jCheckBox1, java.awt.BorderLayout.SOUTH);
jPanel4.add(jPanel6, java.awt.BorderLayout.NORTH);
jPanel4.add(jPanel7, java.awt.BorderLayout.SOUTH);
jPanel7.add(jLabel4);
jPanel7.add(jdir);
jPanel7.add(jButton9);
jPanel7.add(jButton11);
jPanel7.add(jButton10);
this.setTitle("聊天室客户端");
this.setSize(800,600);
this.setLocation(100,100);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
ClientFrame clientframe = new ClientFrame();
}
public void jButton1_actionPerformed(ActionEvent e) {
try {
client = new Client(jip.getText(),
Integer.parseInt(jport.getText()), list1,
list2);
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this,"端口号应该输入数字!","提示",JOptionPane.ERROR_MESSAGE);
} catch (Exception ex) {
JOptionPane.showMessageDialog(this,"服务器不存在或者没有启动!","提示",JOptionPane.ERROR_MESSAGE);
ex.printStackTrace();
}
if(jnickname.getText().length()>0){
this.client.send("NICKNAME:"+jnickname.getText());
}
}
public void jTextField4_actionPerformed(ActionEvent e) {
if(jsend.getText().length()>0){
//判断是给所有人发还是只给指定的客户端发
if(jCheckBox1.isSelected()){
this.client.send(jsend.getText());
}else{
if(list1.getSelectedItem()==null){
JOptionPane.showMessageDialog(this,"请选择要发送信息的用户,或者选中“对所有人”按钮!","提示",JOptionPane.ERROR_MESSAGE);
}else{
this.client.send("SPECIAL:"+list1.getSelectedItem()+"$SPECIAL$"+jsend.getText());
this.list2.add("你 悄悄对 "+list1.getSelectedItem()+" 说:"+jsend.getText());
list2.select(list2.getItemCount()-1);
}
}
}
}
public void jButton4_actionPerformed(ActionEvent e) {
if(jsend.getText().length()>0){
//判断是给所有人发还是只给指定的客户端发
if(jCheckBox1.isSelected()){
this.client.send(jsend.getText());
}else{
if(list1.getSelectedItem()==null){
JOptionPane.showMessageDialog(this,"请选择要发送信息的用户,或者选中“对所有人”按钮!","提示",JOptionPane.ERROR_MESSAGE);
}else{
this.client.send("SPECIAL:"+list1.getSelectedItem()+"$SPECIAL$"+jsend.getText());
this.list2.add("你 悄悄对 "+list1.getSelectedItem()+" 说:"+jsend.getText());
list2.select(list2.getItemCount()-1);
}
}
}
}
public void jButton2_actionPerformed(ActionEvent e) {
this.client.destroy();
this.client=null;
}
public void jButton8_actionPerformed(ActionEvent e) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -