📄 serverframe.java
字号:
// 程序:多人联机服务器
// 范例文件:ServerFrame.java
import java.io.*;
import java.awt.*;
import java.net.*;
import java.util.*; //为了建立Vector实体
import java.awt.event.*;
public class ServerFrame extends Frame implements ActionListener
{
int ScreenWidth,ScreenHeight;
Button CloseServer,OpenServer,SentBtn;
TextArea ServerStatus;
TextField TF;
Panel panel;
ServerThread sThread;
public ServerFrame() //创建方法
{
super("ICQ客服器"); //建立服务器窗口
ServerStatus = new TextArea(); //建立TextArea
CloseServer = new Button("关闭服务器"); //建立Button
OpenServer = new Button("开启服务器");
SentBtn = new Button("发送广播");
ServerStatus.setEditable(false); //TextArea为不可编辑
CloseServer.addActionListener(this); //注册按钮的事件处理方法
TF = new TextField(50);
TF.addKeyListener(new TFListener()); // 注册事件
panel = new Panel();
panel.setLayout(new GridLayout(2,2));
add(ServerStatus,BorderLayout.CENTER); //加入TextArea
add(panel,BorderLayout.SOUTH); //加入panel
panel.add(TF);
panel.add(SentBtn);
panel.add(OpenServer);
panel.add(CloseServer);
//将窗口置于屏幕中央,宽度与高度皆为屏幕一半
ScreenWidth = getToolkit().getScreenSize().width;
ScreenHeight = getToolkit().getScreenSize().height;
setSize(ScreenWidth / 2,ScreenHeight / 2);
setLocation((ScreenWidth - getWidth()) / 2,
(ScreenHeight - getHeight()) / 2);
//setResizable(false); //不可改变窗口大小
setVisible(true); //显示窗口
sThread = new ServerThread(this); //建立服务器主线程
sThread.start(); //启动线程
addWindowListener( // 按下关闭钮时结束程序
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
);
SentBtn.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
sThread.messages.addElement( "聊天室管理员:"+"\n"+TF.getText() );
TF.setText("");
}
}
);
}
public static void main(String srgs[])
{
new ServerFrame(); //建立游戏服务器窗口
}
//=====实现ActionListener界面=====================================
public void actionPerformed(ActionEvent e) //当按钮按下时
{
dispose();
System.exit(0); //关闭窗口
}
private class TFListener implements KeyListener
{
public void keyPressed(KeyEvent e)
{
// 如果按下的是Enter键
if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
sThread.messages.addElement( "聊天室管理员:"+"\n"+TF.getText() );
TF.setText("");
}
}
public void keyTyped(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -