📄 chatserver.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.net.*;
import java.io.*;
/*
* 聊天服务端的主框架类
*/
public class ChatServer extends JFrame implements ActionListener{
public static int port = 8888;//服务端的侦听端口
ServerSocket serverSocket;//服务端Socket
Image icon;//程序图标
JComboBox combobox;//选择发送消息的接受者
JTextArea messageShow;//服务端的信息显示
JScrollPane messageScrollPane;//信息显示的滚动条
JTextField showStatus;//显示用户连接状态
JLabel sendToLabel,messageLabel;
JTextField sysMessage;//服务端消息的发送
JButton sysMessageButton;//服务端消息的发送按钮
UserLinkList userLinkList;//用户链表
//建立菜单栏
JMenuBar jMenuBar = new JMenuBar();
//建立菜单组
JMenu serviceMenu = new JMenu ("服务(V)");
//建立菜单项
JMenuItem portItem = new JMenuItem ("端口设置(P)");
JMenuItem startItem = new JMenuItem ("启动服务(S)");
JMenuItem stopItem=new JMenuItem ("停止服务(T)");
JMenuItem exitItem=new JMenuItem ("退出(X)");
JMenu helpMenu=new JMenu ("帮助(H)");
JMenuItem helpItem=new JMenuItem ("帮助(H)");
//建立工具栏
JToolBar toolBar = new JToolBar();
//建立工具栏中的按钮组件
JButton portSet;//启动服务端侦听
JButton startServer;//启动服务端侦听
JButton stopServer;//关闭服务端侦听
JButton exitButton;//退出按钮
//框架的大小
Dimension faceSize = new Dimension(400, 600);
ServerListen listenThread;
JPanel downPanel ;
GridBagLayout girdBag;
GridBagConstraints girdBagCon;
/**
* 服务端构造函数
*/
public ChatServer(){
init();//初始化程序
//添加框架的关闭事件处理
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
//设置框架的大小
this.setSize(faceSize);
//设置运行时窗口的位置
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation( (int) (screenSize.width - faceSize.getWidth()) / 2,
(int) (screenSize.height - faceSize.getHeight()) / 2);
this.setResizable(false);
this.setTitle("聊天室服务端"); //设置标题
//程序图标
icon = getImage("icon.gif");
this.setIconImage(icon); //设置程序图标
show();
//为服务菜单栏设置热键'V'
serviceMenu.setMnemonic('V');
//为端口设置快捷键为ctrl+p
portItem.setMnemonic ('P');
portItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_P,InputEvent.CTRL_MASK));
//为启动服务快捷键为ctrl+s
startItem.setMnemonic ('S');
startItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_S,InputEvent.CTRL_MASK));
//为端口设置快捷键为ctrl+T
stopItem.setMnemonic ('T');
stopItem.setAccelerator (KeyStroke.getKeyStroke (KeyEvent.VK_T,InputEvent.CTRL_MASK));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -