📄 graphicalwebserver.java
字号:
//GraphicalWebServer.java
import java.awt.event.* ;
import java.awt.*;
import java.net.*;
import javax.swing.*;
public final class GraphicalWebServer extends JFrame implements ActionListener{
//设置添加到Frame中的组件
public JTextArea display = null;
public JButton bStart = null;
public JButton bStop = null;
public JButton bExit = null;
public JTextField tfPort = null;
ServerThread listening = null;
boolean hasStarted = false;
GraphicalWebServer(){
super("Simple Java Web Server");
addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
exitServer();
}});
//层次设置
getContentPane().setLayout(new BorderLayout());
setLocation(100,0) ;
//设置背景颜色
setBackground(Color.lightGray) ;
JPanel buttons = new JPanel(new GridLayout(1,5));
bStart = new JButton("Start");
bStop = new JButton("Stop");
bExit = new JButton("Exit");
JButton bClear = new JButton("Clear");
bStop.addActionListener(this);
bStart.addActionListener(this);
bExit.addActionListener(this);
bClear.addActionListener(this);
JLabel lPort = new JLabel("Port:");
tfPort = new JTextField("80", 6);
buttons.add(bStart);
buttons.add(bStop);
buttons.add(bExit);
buttons.add(bClear);
buttons.add(lPort);
buttons.add(tfPort);
getContentPane().add(BorderLayout.NORTH, buttons);
display = new JTextArea("",20,40);
display.setLineWrap(true);
display.setWrapStyleWord(true);
JScrollPane displayTextPane = new JScrollPane(display,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
getContentPane().add(BorderLayout.SOUTH, displayTextPane);
pack();
show();
}
public void startServer(){
bStart.setEnabled(false);
bStop.setEnabled(true);
if(hasStarted){
listening.resume();
}
else{
hasStarted = true;
int port = 80;
try{
// 设置端口号.
port = Integer.parseInt(tfPort.getText());
}
catch (NumberFormatException e){
//异常处理
display.append("Port number invalid, setting to port 80\n");
}
//开始等待新的连接
listening = new ServerThread(port, display);
listening.start();
}
}
public void exitServer(){
display.append("Exiting server\n");
if(listening !=null){
listening.stop();
}
System.exit(0);
}
public static void main(String args[]) throws Exception {
new GraphicalWebServer();
}
public void stopServer(){
bStart.setEnabled(true);
bStop.setEnabled(false);
listening.suspend();
}
//设置事件的响应
public void actionPerformed (ActionEvent event) {
String command = event.getActionCommand();
if(command.equals("Start")){
startServer();
}
if(command.equals("Stop")){
stopServer();
}
if(command.equals("Exit")){
exitServer();
}
if(command.equals("Clear")){
display.setText("");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -