⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverframe.java

📁 java 编写聊天工具 java 编写聊天工具
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
//////////*服务器窗口类*///////////////
public class ServerFrame extends JFrame implements ActionListener
{
	//服务器信息面板
	JPanel pnlServer,pnlServerInfo;
	JLabel lblStatus,lblNumber,lblMax,lblServerName,lblProtocol,lblIP,lblPort,lblLog;
	JTextField txtStatus,txtNumber,txtMax,txtServerName,txtProtocol,txtIP,txtPort;
	JButton btnStop,btnSaveLog;
	TextArea taLog;
	JTabbedPane tpServer;
	TextArea  taMessage;
	//用户信息面板
	JPanel pnlUser;
	JLabel lblMessage,lblUser,lblNotice,lblUserCount;
	JList lstUser;
	JScrollPane spUser;
	JTextField txtNotice;
	JButton btnSend,btnKick;

	public 	ServerFrame()
	{
	 	//服务器窗口
	 	super("[HappyChat]聊天服务器");
	  	setSize(550,500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);    
        Dimension scr=Toolkit.getDefaultToolkit().getScreenSize();//在屏幕居中显示
        Dimension fra=this.getSize();
        if(fra.width>scr.width)
        {
            fra.width=scr.width;
        }
        if(fra.height>scr.height)
        {
            fra.height=scr.height;
        }
        this.setLocation((scr.width-fra.width)/2,(scr.height-fra.height)/2);
                 
    
//==========服务器信息面板=========================
	 	pnlServer=new JPanel();
	 	pnlServer.setLayout(null);
	 	pnlServer.setBackground(new Color(52,130,203));
	 	
	 	pnlServerInfo=new JPanel(new GridLayout(14,1));
        pnlServerInfo.setBackground(new Color(52,130,203));
        pnlServerInfo.setFont(new Font("宋体",0,12));
        pnlServerInfo.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createTitledBorder(""),BorderFactory.createEmptyBorder(1,1,1,1)));
         
        lblStatus=new JLabel("当前状态:");
        lblStatus.setForeground(Color.YELLOW);
        lblStatus.setFont(new Font("宋体",0,12));
        txtStatus=new JTextField(10);
        txtStatus.setBackground(Color.decode("#d6f4f2"));
        txtStatus.setFont(new Font("宋体",0,12));
        txtStatus.setEditable(false);
         
        lblNumber=new JLabel("当前在线人数:");
        lblNumber.setForeground(Color.YELLOW);
        lblNumber.setFont(new Font("宋体",0,12));
        txtNumber=new JTextField("0 人",10);
        txtNumber.setBackground(Color.decode("#d6f4f2"));
        txtNumber.setFont(new Font("宋体",0,12));
        txtNumber.setEditable(false);
         
        lblMax=new JLabel("最多在线人数:");
        lblMax.setForeground(Color.YELLOW);
        lblMax.setFont(new Font("宋体",0,12));
        txtMax=new JTextField("50 人",10);
        txtMax.setBackground(Color.decode("#d6f4f2"));
        txtMax.setFont(new Font("宋体",0,12));
        txtMax.setEditable(false);
         
        lblServerName=new JLabel("服务器名称:");
        lblServerName.setForeground(Color.YELLOW);
        lblServerName.setFont(new Font("宋体",0,12));
        txtServerName=new JTextField(10);
        txtServerName.setBackground(Color.decode("#d6f4f2"));
        txtServerName.setFont(new Font("宋体",0,12));
        txtServerName.setEditable(false);
         
        lblProtocol=new JLabel("访问协议:");
        lblProtocol.setForeground(Color.YELLOW);
        lblProtocol.setFont(new Font("宋体",0,12));
        txtProtocol=new JTextField("HTTP",10);
        txtProtocol.setBackground(Color.decode("#d6f4f2"));
        txtProtocol.setFont(new Font("宋体",0,12));
        txtProtocol.setEditable(false);
         
        lblIP=new JLabel("服务器IP:");
        lblIP.setForeground(Color.YELLOW);
        lblIP.setFont(new Font("宋体",0,12));
        txtIP=new JTextField(10);
        txtIP.setBackground(Color.decode("#d6f4f2"));
        txtIP.setFont(new Font("宋体",0,12));
        txtIP.setEditable(false);
         
        lblPort=new JLabel("服务器端口:");
        lblPort.setForeground(Color.YELLOW);
        lblPort.setFont(new Font("宋体",0,12));
        txtPort=new JTextField("8000",10);
        txtPort.setBackground(Color.decode("#d6f4f2"));
        txtPort.setFont(new Font("宋体",0,12));
        txtPort.setEditable(false);
         
        btnStop=new JButton("关闭服务器(C)");
        btnStop.setBackground(Color.ORANGE);
        btnStop.setFont(new Font("宋体",0,12));
        
        lblLog=new JLabel("[服务器日志]");
        lblLog.setForeground(Color.YELLOW);
        lblLog.setFont(new Font("宋体",0,12));
         
        taLog=new TextArea(20,50);
        taLog.setFont(new Font("宋体",0,12));
        btnSaveLog=new JButton("保存日志(S)");
        btnSaveLog.setBackground(Color.ORANGE);
        btnSaveLog.setFont(new Font("宋体",0,12));
	 	
	    pnlServerInfo.add(lblStatus);
        pnlServerInfo.add(txtStatus);        
        pnlServerInfo.add(lblNumber);
        pnlServerInfo.add(txtNumber);
        pnlServerInfo.add(lblMax);
        pnlServerInfo.add(txtMax);
        pnlServerInfo.add(lblServerName);
        pnlServerInfo.add(txtServerName);
        pnlServerInfo.add(lblProtocol);
        pnlServerInfo.add(txtProtocol);
        pnlServerInfo.add(lblIP);
        pnlServerInfo.add(txtIP);
        pnlServerInfo.add(lblPort);
        pnlServerInfo.add(txtPort);
         
        pnlServerInfo.setBounds(5,5,100,400);
        lblLog.setBounds(110,5,100,30);
        taLog.setBounds(110,35,400,370);
        btnStop.setBounds(200,410,120,30);
        btnSaveLog.setBounds(320,410,120,30);
        pnlServer.add(pnlServerInfo); 
        pnlServer.add(lblLog);
        pnlServer.add(taLog);
        pnlServer.add(btnStop);
        pnlServer.add(btnSaveLog);
       //===========在线用户面板====================          
        pnlUser=new JPanel();
        pnlUser.setLayout(null);
        pnlUser.setBackground(new Color(52,130,203));
        pnlUser.setFont(new Font("宋体",0,12));
        lblMessage=new JLabel("[用户消息]"); 
        lblMessage.setFont(new Font("宋体",0,12));
        lblMessage.setForeground(Color.YELLOW);
        taMessage=new TextArea(20,20);
        taMessage.setFont(new Font("宋体",0,12));
        lblNotice=new JLabel("通知:");
        lblNotice.setFont(new Font("宋体",0,12));
        txtNotice=new JTextField (20);
        txtNotice.setFont(new Font("宋体",0,12));
        btnSend=new JButton("发送(S)");
        btnSend.setBackground(Color.ORANGE);
        btnSend.setFont(new Font("宋体",0,12));
        btnSend.setEnabled(false);
         
        lblUserCount=new JLabel("在线总人数 0 人");
        lblUserCount.setFont(new Font("宋体",0,12));
		 
		btnKick=new JButton("踢人(K)");
        btnKick.setBackground(Color.ORANGE);
        btnKick.setFont(new Font("宋体",0,12));
        lblUser=new JLabel("[在线用户列表]"); 
        lblUser.setFont(new Font("宋体",0,12));
        lblUser.setForeground(Color.YELLOW);
        
        lstUser=new JList();
        lstUser.setFont(new Font("宋体",0,12));
        lstUser.setVisibleRowCount(17);
        lstUser.setFixedCellWidth(180);
		lstUser.setFixedCellHeight(18);
//        lstUser.setListData(listVector);
         
        spUser=new JScrollPane();
        spUser.setBackground(Color.decode("#d6f4f2"));
        spUser.setFont(new Font("宋体",0,12));
		 //spUser.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		spUser.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		spUser.getViewport().setView(lstUser);
		
		lblMessage.setBounds(5,5,100,25);
		taMessage.setBounds(5,35,300,360);
		lblUser.setBounds(310,5,100,25);
		spUser.setBounds(310,35,220,360);
		lblNotice.setBounds(5,410,40,25);
		txtNotice.setBounds(50,410,160,25);
		btnSend.setBounds(210,410,80,25);
		lblUserCount.setBounds(320,410,100,25);
		btnKick.setBounds(440,410,80,25);
		
        pnlUser.add(lblMessage);
        pnlUser.add(taMessage);
        pnlUser.add(lblUser);
        pnlUser.add(spUser);
        pnlUser.add(lblNotice);
        pnlUser.add(txtNotice);
        pnlUser.add(btnSend);
        pnlUser.add(lblUserCount);
        pnlUser.add(btnKick);
        
//============主标签面板========================

        tpServer=new JTabbedPane(JTabbedPane.TOP);
        tpServer.setBackground(Color.decode("#d6f4f2"));
        tpServer.setFont(new Font("宋体",0,12));
        tpServer.add("服务器管理",pnlServer);
        tpServer.add("用户信息管理",pnlUser);
        this.getContentPane().add(tpServer);
        setVisible(true);
	}
	public void actionPerformed(ActionEvent evt)
	{

	}
	
	public static void main(String args[])
	{
		new ServerFrame();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -