程序截图

原理

定时任务,通过与监控URL建立连接来判断web服务器状态,如果异常,发送邮件通知,如果是139邮箱,同时可接收到手机短信.最终发布时使用fatjar打包,通过one-jar可以将lib打包到一个jar文件中.

源码

ServerMonitor

package com.gary.ui;/*** 主程序* @author gary*/
public class ServerMonitor {public static void main(String[] args){MainApp frame = new MainApp();frame.setVisible(true);}
}

MainApp

package com.gary.ui;import com.gary.util.ConsoleUtil;
import com.gary.util.MailUtil;
import com.gary.util.StringUtil;
import com.gary.util.SwingUtil;
import com.gary.util.TimeUtil;
import com.gary.util.URLUtil;
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import java.net.ConnectException;
import java.net.MalformedURLException;
import java.util.Timer;
import java.util.TimerTask;
import javax.imageio.ImageIO;/*** 主界面* @author gary*/
public class MainApp extends javax.swing.JFrame {private static final long serialVersionUID = 1L;//在IDE中调试为false,发布jar包设置为trueprivate boolean isPublish = false;public MainApp() {initComponents();if(isPublish){ICO = "/computer.png";}else{ICO = "computer.png";}//系统托盘图标systemTray = SystemTray.getSystemTray();try {if(isPublish){trayIcon = new TrayIcon(ImageIO.read(getClass().getResource(ICO)));}else{trayIcon = new TrayIcon(ImageIO.read(new File(ICO)));}systemTray.add(trayIcon);} catch (IOException e1) {writeToConsole(e1.getMessage());} catch (AWTException e2) {writeToConsole(e2.getMessage());}addWindowListener(new WindowAdapter() {@Overridepublic void windowIconified(WindowEvent e) {// 窗口最小化时dispose该窗口dispose();}});trayIcon.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {// 单击托盘窗口再现if (e.getClickCount() == 1)setExtendedState(Frame.NORMAL);setVisible(true);}});try {if(isPublish){setIconImage(ImageIO.read(getClass().getResource(ICO)));}else{setIconImage(ImageIO.read(new java.io.File(ICO)));}} catch (IOException e) {writeToConsole(e.getMessage());}//获取屏幕尺寸对象Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();//水平位置int w = (screen.width - width) / 2;//垂直位置int h = (screen.height - height) / 2;setLocation(w,h);setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setTitle("Service Monitor");setSize(width, height);writeToConsole("初始化成功");}/*** 输出到控制台*/private void writeToConsole(String str){ConsoleUtil.write(str);consoleText.setText(ConsoleUtil.get());}/*** 初始化*/private void initComponents() {jPanel1 = new javax.swing.JPanel();userNameLabel = new javax.swing.JLabel();smtpText = new javax.swing.JTextField();smtpLabel = new javax.swing.JLabel();userNameText = new javax.swing.JTextField();passwordLabel = new javax.swing.JLabel();passwordText = new javax.swing.JPasswordField();senderLabel = new javax.swing.JLabel();receiverLabel = new javax.swing.JLabel();senderText = new javax.swing.JTextField();mondayText = new javax.swing.JTextField();mailSubjectLabel = new javax.swing.JLabel();mailContextLabel = new javax.swing.JLabel();mailSubjectText = new javax.swing.JTextField();mailContextPane1 = new javax.swing.JScrollPane();mailContentText = new javax.swing.JTextArea();urlText = new javax.swing.JTextField();urlLabel = new javax.swing.JLabel();controlButton = new javax.swing.JButton();intervalText = new javax.swing.JTextField();intervalLabel = new javax.swing.JLabel();unitLabel = new javax.swing.JLabel();consolePane = new javax.swing.JScrollPane();consoleText = new javax.swing.JTextArea();clearConsoleButton = new javax.swing.JButton();mondayLabel = new javax.swing.JLabel();tuesdayLabel = new javax.swing.JLabel();wednesdayLabel = new javax.swing.JLabel();thursdayLabel = new javax.swing.JLabel();fridayLabel = new javax.swing.JLabel();saturdayLabel = new javax.swing.JLabel();sundayLabel = new javax.swing.JLabel();tuesdayText = new javax.swing.JTextField();wednesdayText = new javax.swing.JTextField();thursdayText = new javax.swing.JTextField();fridayText = new javax.swing.JTextField();saturdayText = new javax.swing.JTextField();sundayText = new javax.swing.JTextField();menuBar1 = new javax.swing.JMenuBar();fileMenu = new javax.swing.JMenu();sendTestMenuItem = new javax.swing.JMenuItem();exitMenuItem = new javax.swing.JMenuItem();helpMenu = new javax.swing.JMenu();aboutMenuItem = new javax.swing.JMenuItem();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());userNameLabel.setFont(new java.awt.Font("宋体", 0, 12));userNameLabel.setText("用户名");jPanel1.add(userNameLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 40, -1, -1));smtpText.setFont(new java.awt.Font("宋体", 0, 12));smtpText.setText("mail.nou.com.cn");jPanel1.add(smtpText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 10, 150, -1));smtpLabel.setFont(new java.awt.Font("宋体", 0, 12));smtpLabel.setText("SMTP服务器");jPanel1.add(smtpLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 10, -1, -1));userNameText.setFont(new java.awt.Font("宋体", 0, 12));userNameText.setText("");jPanel1.add(userNameText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 40, 150, -1));passwordLabel.setFont(new java.awt.Font("宋体", 0, 12));passwordLabel.setText("密码");jPanel1.add(passwordLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 70, -1, -1));passwordText.setFont(new java.awt.Font("宋体", 0, 12));passwordText.setText("");jPanel1.add(passwordText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 70, 150, -1));senderLabel.setFont(new java.awt.Font("宋体", 0, 12));senderLabel.setText("发件人");jPanel1.add(senderLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 100, -1, -1));receiverLabel.setFont(new java.awt.Font("宋体", 0, 12));receiverLabel.setText("收件人");jPanel1.add(receiverLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 130, -1, -1));senderText.setFont(new java.awt.Font("宋体", 0, 12));senderText.setText("zhangtongbo08@nou.com.cn");jPanel1.add(senderText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 100, 150, -1));mondayText.setFont(new java.awt.Font("宋体", 0, 12));mondayText.setText("15842634428@139.com");mondayText.setToolTipText("多个收件人用;间隔");jPanel1.add(mondayText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 160, 150, -1));mailSubjectLabel.setFont(new java.awt.Font("宋体", 0, 12));mailSubjectLabel.setText("邮件主题");jPanel1.add(mailSubjectLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 440, -1, -1));mailContextLabel.setFont(new java.awt.Font("宋体", 0, 12));mailContextLabel.setText("邮件内容");jPanel1.add(mailContextLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 470, -1, -1));mailSubjectText.setFont(new java.awt.Font("宋体", 0, 12));mailSubjectText.setText("服务器已关闭");jPanel1.add(mailSubjectText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 440, 150, -1));mailContentText.setColumns(20);mailContentText.setFont(new java.awt.Font("宋体", 0, 12));mailContentText.setRows(5);mailContentText.setText("目标服务器已关闭");mailContextPane1.setViewportView(mailContentText);jPanel1.add(mailContextPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 470, 250, 100));urlText.setFont(new java.awt.Font("宋体", 0, 12));urlText.setText("http://www.baidu.com/");jPanel1.add(urlText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 380, 150, -1));urlLabel.setFont(new java.awt.Font("宋体", 0, 12));urlLabel.setText("监控URL");jPanel1.add(urlLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 380, -1, -1));controlButton.setFont(new java.awt.Font("宋体", 0, 12));controlButton.setText("开始监控");controlButton.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {controlButtonActionPerformed(evt);}});jPanel1.add(controlButton, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 580, -1, -1));intervalText.setFont(new java.awt.Font("宋体", 0, 12));intervalText.setText("10");jPanel1.add(intervalText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 410, 70, -1));intervalLabel.setFont(new java.awt.Font("宋体", 0, 12));intervalLabel.setText("监控间隔");jPanel1.add(intervalLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 410, -1, -1));unitLabel.setFont(new java.awt.Font("宋体", 0, 12));unitLabel.setText("分钟");jPanel1.add(unitLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 410, -1, -1));consoleText.setColumns(20);consoleText.setFont(new java.awt.Font("宋体", 0, 12));consoleText.setRows(5);consolePane.setViewportView(consoleText);jPanel1.add(consolePane, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 10, 240, 560));clearConsoleButton.setFont(new java.awt.Font("宋体", 0, 12));clearConsoleButton.setText("清空日志");clearConsoleButton.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {clearConsoleButtonActionPerformed(evt);}});jPanel1.add(clearConsoleButton, new org.netbeans.lib.awtextra.AbsoluteConstraints(560, 580, -1, -1));mondayLabel.setFont(new java.awt.Font("宋体", 0, 12));mondayLabel.setText("星期一");jPanel1.add(mondayLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 160, -1, -1));tuesdayLabel.setFont(new java.awt.Font("宋体", 0, 12));tuesdayLabel.setText("星期二");jPanel1.add(tuesdayLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 190, -1, -1));wednesdayLabel.setFont(new java.awt.Font("宋体", 0, 12));wednesdayLabel.setText("星期三");jPanel1.add(wednesdayLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 220, -1, -1));thursdayLabel.setFont(new java.awt.Font("宋体", 0, 12));thursdayLabel.setText("星期四");jPanel1.add(thursdayLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 250, -1, -1));fridayLabel.setFont(new java.awt.Font("宋体", 0, 12));fridayLabel.setText("星期五");jPanel1.add(fridayLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 280, -1, -1));saturdayLabel.setFont(new java.awt.Font("宋体", 0, 12));saturdayLabel.setText("星期六");jPanel1.add(saturdayLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 310, -1, -1));sundayLabel.setFont(new java.awt.Font("宋体", 0, 12));sundayLabel.setText("星期日");jPanel1.add(sundayLabel, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 340, -1, -1));tuesdayText.setFont(new java.awt.Font("宋体", 0, 12));tuesdayText.setText("15842634428@139.com");jPanel1.add(tuesdayText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 190, 150, -1));wednesdayText.setFont(new java.awt.Font("宋体", 0, 12));wednesdayText.setText("15842634428@139.com");jPanel1.add(wednesdayText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 220, 150, -1));thursdayText.setFont(new java.awt.Font("宋体", 0, 12));thursdayText.setText("15842634428@139.com");jPanel1.add(thursdayText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 250, 150, -1));fridayText.setFont(new java.awt.Font("宋体", 0, 12));fridayText.setText("15842634428@139.com");jPanel1.add(fridayText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 280, 150, -1));saturdayText.setFont(new java.awt.Font("宋体", 0, 12));saturdayText.setText("15842634428@139.com");jPanel1.add(saturdayText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 310, 150, -1));sundayText.setFont(new java.awt.Font("宋体", 0, 12));sundayText.setText("15842634428@139.com");jPanel1.add(sundayText, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 340, 150, -1));getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 650, 610));fileMenu.setText("文件");fileMenu.setFont(new java.awt.Font("宋体", 0, 12));sendTestMenuItem.setFont(new java.awt.Font("宋体", 0, 12));sendTestMenuItem.setText("发送测试邮件");sendTestMenuItem.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {sendTestMenuItemActionPerformed(evt);}});fileMenu.add(sendTestMenuItem);exitMenuItem.setFont(new java.awt.Font("宋体", 0, 12));exitMenuItem.setText("退出");exitMenuItem.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {exitMenuItemActionPerformed(evt);}});fileMenu.add(exitMenuItem);menuBar1.add(fileMenu);helpMenu.setText("帮助");helpMenu.setFont(new java.awt.Font("宋体", 0, 12));aboutMenuItem.setFont(new java.awt.Font("宋体", 0, 12));aboutMenuItem.setText("关于");aboutMenuItem.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {aboutMenuItemActionPerformed(evt);}});helpMenu.add(aboutMenuItem);menuBar1.add(helpMenu);setJMenuBar(menuBar1);pack();}private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                              SwingUtil.show(new AboutDialog(this, false));}                                             private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                             System.exit(0);}                                            private void sendTestMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                                 try {new MailUtil(smtpText.getText(), userNameText.getText(), getPassword()).sendSimpleMail(senderText.getText(), getReceiver(), mailSubjectText.getText(), mailContentText.getText());writeToConsole("测试邮件发送成功");}catch(Exception e){writeToConsole("发送邮件失败," + e.getMessage()); }}                                                private void controlButtonActionPerformed(java.awt.event.ActionEvent evt) {                                              if(verifyParam()){start();}}                                             private void clearConsoleButtonActionPerformed(java.awt.event.ActionEvent evt) {                                                   ConsoleUtil.clear();consoleText.setText(ConsoleUtil.get());}                                                  public String[] getReceiver(){int dayOfWeek = TimeUtil.getDayOfWeek();switch(dayOfWeek){case 1:return sundayText.getText().split(";");case 2:return mondayText.getText().split(";");case 3:return tuesdayText.getText().split(";");case 4:return wednesdayText.getText().split(";");case 5:return thursdayText.getText().split(";");case 6:return fridayText.getText().split(";");case 7:return saturdayText.getText().split(";");}return null;}/*** 开始*/public void start(){Double intervalDouble = Double.parseDouble(intervalText.getText());intervalDouble  = intervalDouble * 60 * 1000;long interval = (long)intervalDouble.longValue();Timer timer = new Timer();//在0秒后执行此任务,每次间隔interval秒//如果传递一个Data参数,就可以在某个固定的时间执行这个任务.timer.schedule(new MyTask(), 0, interval);}/*** 检查参数* @return */private boolean verifyParam(){if(StringUtil.isBlank(smtpText.getText())){writeToConsole("SMTP服务器不能为空");return false;}if(StringUtil.isBlank(userNameText.getText())){writeToConsole("用户名不能为空");return false;}if(StringUtil.isBlank(getPassword())){writeToConsole("密码不能为空");return false;}if(StringUtil.isBlank(senderText.getText())){writeToConsole("发件人错误");return false;}if(StringUtil.isBlank(mondayText.getText())){writeToConsole("收件不能为空");return false;}if(StringUtil.isBlank(urlText.getText())){writeToConsole("URL不能为空");return false;}if(StringUtil.isBlank(intervalText.getText())){writeToConsole("监控间隔不能为空");return false;}else{char[] charArray = intervalText.getText().toCharArray();for(int i = 0 ; i < charArray.length ; i++){if(Character.isDigit(charArray[i]) || charArray[i] == '.'){}else{writeToConsole("监控间隔必须为数字");return false;}}}if(StringUtil.isBlank(mailSubjectText.getText())){writeToConsole("邮件主题不能为空");return false;}if(StringUtil.isBlank(mailContentText.getText())){writeToConsole("邮件内容不能为空");return false;}return true;}/*** 获取密码* @return */private String getPassword(){StringBuilder password = new StringBuilder();char[] pass = passwordText.getPassword();for(int i = 0 ; i < pass.length ; i++){password.append(pass[i]);}return password.toString();}/*** 监控*/private class MyTask extends TimerTask{@Overridepublic void run() {try {new URLUtil().connect(urlText.getText());writeToConsole("服务器状态正常");} catch (MalformedURLException ex) {writeToConsole("URL填写错误");} catch (ConnectException e){writeToConsole("服务器已关闭");try {new MailUtil(smtpText.getText(), userNameText.getText(), getPassword()).sendSimpleMail(senderText.getText(), getReceiver(), mailSubjectText.getText(), mailContentText.getText());} catch (Exception ex) {writeToConsole("发送邮件失败," + ex.getMessage());}} catch (IOException ex) {writeToConsole("连接错误");}}}private SystemTray systemTray;private TrayIcon trayIcon;private static final int width = 672;private static final int height = 667;private static String ICO = null;private javax.swing.JMenuItem aboutMenuItem;private javax.swing.JButton clearConsoleButton;private javax.swing.JScrollPane consolePane;private javax.swing.JTextArea consoleText;private javax.swing.JButton controlButton;private javax.swing.JMenuItem exitMenuItem;private javax.swing.JMenu fileMenu;private javax.swing.JLabel fridayLabel;private javax.swing.JTextField fridayText;private javax.swing.JMenu helpMenu;private javax.swing.JLabel intervalLabel;private javax.swing.JTextField intervalText;private javax.swing.JPanel jPanel1;private javax.swing.JTextArea mailContentText;private javax.swing.JLabel mailContextLabel;private javax.swing.JScrollPane mailContextPane1;private javax.swing.JLabel mailSubjectLabel;private javax.swing.JTextField mailSubjectText;private javax.swing.JMenuBar menuBar1;private javax.swing.JLabel mondayLabel;private javax.swing.JTextField mondayText;private javax.swing.JLabel passwordLabel;private javax.swing.JPasswordField passwordText;private javax.swing.JLabel receiverLabel;private javax.swing.JLabel saturdayLabel;private javax.swing.JTextField saturdayText;private javax.swing.JMenuItem sendTestMenuItem;private javax.swing.JLabel senderLabel;private javax.swing.JTextField senderText;private javax.swing.JLabel smtpLabel;private javax.swing.JTextField smtpText;private javax.swing.JLabel sundayLabel;private javax.swing.JTextField sundayText;private javax.swing.JLabel thursdayLabel;private javax.swing.JTextField thursdayText;private javax.swing.JLabel tuesdayLabel;private javax.swing.JTextField tuesdayText;private javax.swing.JLabel unitLabel;private javax.swing.JLabel urlLabel;private javax.swing.JTextField urlText;private javax.swing.JLabel userNameLabel;private javax.swing.JTextField userNameText;private javax.swing.JLabel wednesdayLabel;private javax.swing.JTextField wednesdayText;
}

AboutDialog

package com.gary.ui;/*** 关于* @author gary*/
public class AboutDialog extends javax.swing.JDialog {private static final long serialVersionUID = 1L;public AboutDialog(java.awt.Frame parent, boolean modal) {super(parent, modal);initComponents();}private void initComponents() {closeButton = new javax.swing.JButton();titleLabel = new javax.swing.JLabel();qqContentLabel = new javax.swing.JLabel();qqlabel = new javax.swing.JLabel();blogLabel = new javax.swing.JLabel();authorContentLabel = new javax.swing.JLabel();emailLabel = new javax.swing.JLabel();blogContentLabel = new javax.swing.JLabel();authorLabel = new javax.swing.JLabel();emailContentLabel = new javax.swing.JLabel();setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);setTitle("Server Monitor");closeButton.setText("close");closeButton.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {closeButtonActionPerformed(evt);}});titleLabel.setText("Server Monitor V1.0");qqContentLabel.setText("408036296");qqlabel.setFont(new java.awt.Font("宋体", 1, 12));qqlabel.setText("QQ:");blogLabel.setFont(new java.awt.Font("宋体", 1, 12));blogLabel.setText("Blog:");authorContentLabel.setText("gary");emailLabel.setFont(new java.awt.Font("宋体", 1, 12));emailLabel.setText("E-mail:");blogContentLabel.setText("http://gary0416.iteye.com/");authorLabel.setFont(new java.awt.Font("宋体", 1, 12));authorLabel.setText("Author:");emailContentLabel.setText("408036296@163.com");javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(50, 50, 50).addComponent(titleLabel)).addGroup(layout.createSequentialGroup().addGap(10, 10, 10).addComponent(authorLabel).addGap(11, 11, 11).addComponent(authorContentLabel)).addGroup(layout.createSequentialGroup().addGap(10, 10, 10).addComponent(blogLabel).addGap(25, 25, 25).addComponent(blogContentLabel)).addGroup(layout.createSequentialGroup().addGap(10, 10, 10).addComponent(emailLabel).addGap(11, 11, 11).addComponent(emailContentLabel)).addGroup(layout.createSequentialGroup().addGap(10, 10, 10).addComponent(qqlabel).addGap(39, 39, 39).addComponent(qqContentLabel)).addGroup(layout.createSequentialGroup().addGap(80, 80, 80).addComponent(closeButton))).addContainerGap(14, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(10, 10, 10).addComponent(titleLabel).addGap(15, 15, 15).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(authorLabel).addComponent(authorContentLabel)).addGap(15, 15, 15).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(blogLabel).addComponent(blogContentLabel)).addGap(15, 15, 15).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(emailLabel).addComponent(emailContentLabel)).addGap(15, 15, 15).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(qqlabel).addComponent(qqContentLabel)).addGap(25, 25, 25).addComponent(closeButton).addContainerGap(16, Short.MAX_VALUE)));pack();}private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {this.setVisible(false);}private javax.swing.JLabel authorContentLabel;private javax.swing.JLabel authorLabel;private javax.swing.JLabel blogContentLabel;private javax.swing.JLabel blogLabel;private javax.swing.JButton closeButton;private javax.swing.JLabel emailContentLabel;private javax.swing.JLabel emailLabel;private javax.swing.JLabel qqContentLabel;private javax.swing.JLabel qqlabel;private javax.swing.JLabel titleLabel;
}

web服务器监控(一)相关推荐

  1. SUM服务器监控软件全面介绍

    [企业IT业务概况]        大多企业和单位投入大量资金组建IT网络.购买各种企业运行支持软件.为不同的群体提供各式各样的IT支持.这些系统.硬件.软件已经为企业带了巨大的利益.随着IT规模的扩 ...

  2. 基于JAVA服务器监控系统设计,远程数字图像监控系统中web服务器的设计与实现...

    摘要: 数字图像监控系统在目前处于小规模发展阶段,系统的核心是监控服务器.在一些小规模的应用中,监控服务器同时还充当着监控终端的角色.但是,大部分监控系统都没有考虑用户权限.安全性.收费模式等方面的问 ...

  3. linux服务器监控zabbix,Linux监控之--使用ZABBIX监控web服务器

    使用ZABBIX监控web 服务器 实验拓扑图: 实验思路: nginx添加状态统计模块,编写nginx对应的状态统计脚本. zabbix-server 导入nginx模板,并对主机实现监控. 实验环 ...

  4. ESP8266/ESP32 网络温控器监控 Web服务器-基于温度控制输出

    ESP8266/ESP32 网络温控器监控 Web服务器-基于温度控制输出 示意图 接线图 实例代码 #ifdef ESP32#include <WiFi.h>#include & ...

  5. html5 监控系统界面,基于WEB服务器实现监控系统的视频图像显示

    图3 嵌入式 WEB 服务器的应用软件结构 3.2.2嵌入式数据库mSQL 在本系统中,用户信息的存储,用户的登录登出,视频设备参数的存储与查询,视频文件的存储与查询等,都需要一个嵌入式数据库.综合考 ...

  6. 远程监控服务器图片,基于WEB服务器实现监控系统的视频图像显示

    图3 嵌入式 WEB 服务器的应用软件结构 3.2.2嵌入式数据库mSQL 在本系统中,用户信息的存储,用户的登录登出,视频设备参数的存储与查询,视频文件的存储与查询等,都需要一个嵌入式数据库.综合考 ...

  7. Tengine Web服务器概述

    Tengine Web服务器概述 Tengine是由淘宝网发起的Web服务器项目.在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性.目的是打造一个高效.安全的Web平台. 发展 ...

  8. 2021年大数据ELK(二十二):采集Apache Web服务器日志

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 采集Apache Web服务器日志 一.需求 二.准备日志数据 三.使用Fil ...

  9. lvs服务器需要开启web服务么_Nginx+Keepalived实现web服务器高可用

    1.Nginx 业务背景 现公司需求快速搭建web服务器,对外提供给用户web服务. 需求拆分 需要基于http协议的软件,搭建服务实现 介绍 常见用法: 1) web服务器软件 httpd http ...

最新文章

  1. Ant Design Pro 登录流程以及路由权限设置
  2. jQuery 操作 DOM
  3. C 程序更有效率的 10 种方法
  4. argmax函数_1.4 TensorFlow2.1常用函数
  5. 无法执行二进制文件: 可执行文件格式错误_VB中.frm .frx .vbp .vbw .scc文件都有什么作用,你知道么?...
  6. 用计算机探索规律的ppt,用计算机探索规律.ppt
  7. php curl密码控件,检索通过curl传递的用户名,密码参数 - php
  8. 新博开通,近期将推出系列博客之测试工具篇!
  9. ffmpeg time_base详解
  10. EasyUI框架分页实现
  11. POJ-1067 取石子游戏(威佐夫博弈)
  12. three.js实现球体地球城市模拟迁徙
  13. 炫酷动漫游戏网站页面设计html页面前端源码
  14. 白杨SEO:百度首页和百度SERP的新闻是怎么做上去的?
  15. 如何在linux系统上添加网口打印机
  16. idea中编译DataSphereStudio编译方法及问题排查
  17. wgs84坐标格式转换度分秒_WGS84经纬度坐标转换到西安80高斯投影坐标。
  18. 2023武汉理工大学计算机考研信息汇总
  19. 多媒体技术对计算机提出的基本要求是什么,2017年9月计算机应用基础统考押题9计算机多媒体技术...
  20. 双模控制器很耗电_电动车双电双核控制系统是在说什么?这个部件的发展一日千里!...

热门文章

  1. Android SDK开发包国内下载地址
  2. 我的世界 - ComputerCraft: Tweaked [CC:T] 模组入门教程 (1) - 概述
  3. 【python爬虫】懒加载(以站长素材为例)
  4. linux中文谐音,GNU和LINUX到底怎么个发音?
  5. 百度关键字排名的几个规则
  6. 大商创如何重置或修改商家店铺登录密码?
  7. STM32系统滴答_及不可不知的延时技巧
  8. linux内核自旋锁的代码分析
  9. php bcmath 5.4.16 42,4.安装节点php-bcmath依赖问题.doc
  10. 嵌入式系统开发笔记79:电磁波频谱的划分