📄 udptimeserverframe.java
字号:
package udptimeserver;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;/** * Title: 时钟服务程序 * Description: 这是一个使用用户数据报协议(UDP)实现的简单时钟服务器 * Copyright: Copyright (c) 2001 * Company: * @author * @version 1.0 */public class UdpTimeServerFrame extends JFrame { JPanel contentPane; JLabel statusBar = new JLabel(); BorderLayout borderLayout1 = new BorderLayout(); JPanel jPanelCmd = new JPanel(); JPanel jPanelLog = new JPanel(); BorderLayout borderLayout2 = new BorderLayout(); JScrollPane jScrollPaneLog = new JScrollPane(); TitledBorder titledBorder1; JLabel jLabel1 = new JLabel(); JTextField txtPort = new JTextField(); JButton command = new JButton(); JLabel jLabel3 = new JLabel(); JLabel jLabel2 = new JLabel(); JTextArea txtLog = new JTextArea(); timeServer server; /**Construct the frame*/ public UdpTimeServerFrame() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } /**Component initialization*/ private void jbInit() throws Exception { //setIconImage(Toolkit.getDefaultToolkit().createImage(UdpTimeServerFrame.class.getResource("[Your Icon]"))); contentPane = (JPanel) this.getContentPane(); titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(134, 134, 134)),"日志"); contentPane.setLayout(borderLayout1); this.setSize(new Dimension(354, 241)); this.setTitle("时钟服务器"); statusBar.setText(" "); jPanelLog.setLayout(borderLayout2); jScrollPaneLog.setBorder(titledBorder1); jLabel1.setText("请输入时钟服务端口号:"); txtPort.setText("13"); txtPort.setColumns(5); command.setText("Start"); command.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { command_actionPerformed(e); } }); jLabel3.setToolTipText(""); jLabel3.setText(" "); jLabel2.setText(" "); contentPane.add(statusBar, BorderLayout.SOUTH); contentPane.add(jPanelCmd, BorderLayout.NORTH); contentPane.add(jPanelLog, BorderLayout.CENTER); jPanelLog.add(jScrollPaneLog, BorderLayout.CENTER); jScrollPaneLog.getViewport().add(txtLog, null); jPanelLog.add(jLabel3, BorderLayout.WEST); jPanelLog.add(jLabel2, BorderLayout.EAST); jPanelCmd.add(jLabel1, null); jPanelCmd.add(txtPort, null); jPanelCmd.add(command, null); } /**Overridden so we can exit when window is closed*/ protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } void command_actionPerformed(ActionEvent e) { if(e.getActionCommand()=="Start" ){ if(server!=null) { server.stopServer() ; server=null; } server=new timeServer(Integer.parseInt(txtPort.getText().trim()),txtLog); server.start(); statusBar.setText("服务启动,端口为"+txtPort.getText().trim()); command.setText("Stop"); }else{ if(server!=null) { server.stopServer() ; server=null; } statusBar.setText("服务终止"); command.setText("Start"); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -