package com.server;
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import com.server.control.NewWatchFrame;
import com.server.util.GenerateDate;
public class Server_Frame extends JFrame {
private static final long serialVersionUID = 1L;
private static JPanel p1 = new JPanel(new GridLayout(1, 10)); // ¶¨ÒåÒ»¸öÖмäÈÝÆ÷£¬´æ·Å¶¥²¿9¸ö°´Å¥+1¸ö±êÇ©
private static JButton[] btn = new JButton[13];// Ϊ13¸ö°´Å¥Ìí¼ÓÏûÏ¢Ìáʾ
private static JLabel label = new JLabel(" ´Ë´¦ÏÔʾʱ¼ä"); // ÏÔʾʱ¼äµÄ±êÇ©
private static JPanel p2 = new JPanel();
private static Box box = Box.createVerticalBox();
private static JPanel p3 = new JPanel(new BorderLayout());
private static JPanel p4 = new JPanel(new BorderLayout());// ´æµÚ1¸öÎı¾¿ò
private static JTextArea textArea01 = new JTextArea(5, 40);// ¶¨ÒåµÚ2¸ö£¬µÚ3¸öÎı¾¿ò
private static JTextArea textArea02 = new JTextArea(3, 6);
private static JTextArea textArea03 = new JTextArea(5, 55);
private static Box box01 = Box.createVerticalBox();
private static Box box02 = Box.createHorizontalBox();
private static JButton bt01 = new JButton("·¢ËÍÖÁÈ«Ìå³ÉÔ±");// ¶¨ÒåÁ½¸ö·Å°´Å¥
private static JButton bt02 = new JButton("·¢ËÍ");
private static JPanel p5 = new JPanel();
private static JPanel p6 = new JPanel(new GridLayout());
private static String[] message = new String[] { "ÊÓÆµÂ¼Ïñ", "ѧÉúÐÅÏ¢", "ÆÁÄ»¼à¿Ø", "Ëø×¡¿Í»§»ú", "µãÃûÇ©µ½", "Ô¶³Ì¿ØÖÆ", "·Å´óѧÉúÆÁÄ»", "Îļþ·Ö·¢", "ÏûÏ¢·¢ËÍ", "×Ü¿ª¹Ø", "",
"", "ÉèÖÃ" };// ÉèÖð´Å¥ÌáʾÐÅÏ¢
/*
* ´æ·Å52¸ö°´Å¥ÓëÆä±êʶµÄMapÊý×é Ïß³Ìͬ²½µÄ
*/
public static Map btMap = Collections.synchronizedMap(new HashMap());
/*
* µã»÷°´Å¥µÄ±êʶ
*/
public static int clickedNum = -1;
/*
* ·Å´óȨÏÞ
*/
public static boolean isLarge = false;
/*
* ¼à¿Ø¹¦ÄÜȨÏÞ
*/
public static boolean isMonitor = false;
/*
* getter\setter
*/
public static JButton[] bt = new JButton[52];
private SystemTray tray;
private TrayIcon trayIcon;
/**
* @return the textArea03
*/
public static JTextArea getTextArea03() {
return textArea03;
}
/**
* @param textArea03
* the textArea03 to set
*/
public static void setTextArea03(JTextArea textArea03) {
Server_Frame.textArea03 = textArea03;
}
// ³õʼ»¯´°¿Úº¯Êý
public Server_Frame() throws Exception {
// ÉèÖô°Ìå±êÌâ
this.setTitle("Ô¶³Ì×ÀÃæ¼à¿ØÏµÍ³");
// ÉèÖô°Ìå´óС
this.setSize(1331, 736);
/*
* ÉèÖô°¿Ú´¦ÓÚÆÁÄ»ÕýÖмä
*/
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
// »ñÈ¡ÆÁÄ»É豸µÄ¿í¶È
int width = (int) d.getWidth();// 1366
// »ñÈ¡ÆÁÄ»É豸µÄ¸ß¶È
int height = (int) d.getHeight();// 768
// ÉèÖô°Ìå´¦ÓÚÕýÖмä
this.setLocation((width - 1331) / 2, (height - 736) / 2);
/*
* ÉèÖóÌÐòÔËÐеÄͼ±ê
*/
Toolkit tk = Toolkit.getDefaultToolkit();
Image img = tk.getImage(this.getClass().getResource("/images/0.png"));
this.setIconImage(img);
// ÉèÖô°¿Ú¹Ø±Õʼþ¼àÌý
addWindowListener(new WindowAdapter() {
// public void windowClosing(WindowEvent e) {
//
// // ½«ÍÐÅÌͼ±êÌí¼Óµ½ÏµÍ³µÄÍÐÅÌʵÀýÖÐ
//
// try {
//
// tray.add(trayIcon);
//
// System.out.println("¹Ø±Õ");
// //µ±Ç°´°¿Ú¹Ø±Õ
// Server_Frame.this.setVisible(false);
//
// } catch (AWTException e1) {
//
// e1.printStackTrace();
//
// }
//
// }
//
});
/*
* ÉèÖÃÍÐÅÌ
*/
if (SystemTray.isSupported()) {
System.out.println("µ÷ ÓÃtray");
tray();
}
// ·Ö±ð´´½¨9¸öÉϱêÌâ°´Å¥
for (int i = 0; i < 9; i++) {
btn[i] = new JButton(new Font(message[i],Font.ITALIC,10).getName(), new ImageIcon(this.getClass().getResource("/images/" + i + ".png")));
btn[i].setVerticalTextPosition(JButton.BOTTOM);
btn[i].setHorizontalTextPosition(JButton.CENTER);
btn[i].setIconTextGap(10);
p1.add(btn[i]);
btn[i].setToolTipText(message[i]);
}
p1.add(label);
p2.setBorder(new TitledBorder(new EtchedBorder(), "Óû§Áбí"));
/*
* ´´½¨×ó±ßµÄ4¸ö°´Å¥
*/
for (int i = 9; i < btn.length; i++) {
btn[i] = new JButton(new ImageIcon(this.getClass().getResource("/images/" + i + ".png")));
box.add(Box.createHorizontalStrut(1));
box.add(btn[i]);
btn[i].setToolTipText(message[i]);
}
/*
* Ϊp2Ìí¼Ó¹ö¶¯Ìõ Ϊ52¸ö°´Å¥Ìí¼ÓÌáʾ
*/
p2.setLayout(new GridLayout(13, 2));
for (int i = 0; i < bt.length; i++) {
bt[i] = new JButton((i + 1) + "ºÅ»ú", new ImageIcon(this.getClass().getResource("/images/huaji.png")));
bt[i].setToolTipText((i + 1) + " ºÅ µç ÄÔ ");
bt[i].setVerticalTextPosition(JButton.BOTTOM);
bt[i].setHorizontalTextPosition(JButton.CENTER);
bt[i].setIconTextGap(90);
p2.add(bt[i]);
}
/*
* Ϊp2Ìí¼Ó¹ö¶¯Ìõ
*/
JScrollPane js_p2 = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
js_p2.setViewportView(p2);
p2.setPreferredSize(new Dimension(400, 2800));
p2.revalidate();
p3.add(js_p2, BorderLayout.CENTER);
p3.add(box, BorderLayout.EAST);
p4.setBorder(new TitledBorder(new EtchedBorder(), "ÐÅÏ¢¹ÜÀí"));
textArea01.setLineWrap(true);
textArea01.setWrapStyleWord(true);
JScrollPane js_01 = new JScrollPane(textArea01);
textArea02.setLineWrap(true);
textArea02.setWrapStyleWord(true);
JScrollPane js_02 = new JScrollPane(textArea02);
box02.add(bt01);
box02.add(Box.createHorizontalStrut(10));
box02.add(bt02);
box01.add(js_02);
box01.add(box02);
/*
* ÉèÖò¼¾Ö
*/
p4.add(js_01, BorderLayout.WEST);
p4.add(box01, BorderLayout.EAST);
p5.setBorder(new TitledBorder(new EtchedBorder(), "Óû§¼Ç¼"));
/*
* Îı¾¿ò
*/
// ÉèÖÃ×Ô¶¯»»ÐС¢×Ô¶¯»»×Ö¹¦ÄÜ
textArea03.setLineWrap(true);
textArea03.setWrapStyleWord(true);
textArea03.setEditable(false);
JScrollPane js_03 = new JScrollPane(textArea03);
p5.add(js_03);
// ´æµÚp4,p5
p6.add(p4);
p6.add(p5);
/*
* ¸ø52¸ö°´Å¥×ö¸öÓ³Éä ÿ¸ö°´Å¥ÐòºÅ¶ÔÓ¦´Ó1~52
*/
for (int i = 0; i < bt.length; i++) {
btMap.put(bt[i], i + 1);
bt[i].setEnabled(false);
}
/*
* ½«Èý¸öÈÝÆ÷Ìí¼Óµ½JFrameÖÐ
*/
this.add(p1, BorderLayout.NORTH);
this.add(p3, BorderLayout.CENTER);
this.add(p6, BorderLayout.SOUTH);
componentListener();
// ÉèÖô°ÌåÏÔʾ³öÀ´
this.setVisible(true);
// ÉèÖô°¿Ú²»ÄÜÐ޸ĴóС
this.setResizable(false);
// ÉèÖÿÉÒÔµã»÷¹Ø±Õ
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void tray() {
// »ñµÃ±¾²Ù×÷ϵͳÍÐÅ̵ÄʵÀý
tray = SystemTray.getSystemTray();
// ÏÔʾÔÚÍÐÅÌÖеÄͼ±ê
ImageIcon icon = new ImageIcon(this.getClass().getResource("/images/1.png"));
// ¹¹ÔìÒ»¸öÓÒ¼üµ¯³öʽ²Ëµ¥
PopupMenu pop = new PopupMenu();
MenuItem file = new MenuItem("·¢ËÍÎļþ");
MenuItem screen = new MenuItem("·Å´óѧÉúÆÁÄ»");
MenuItem monitor = new MenuItem("¿ªÆô¼à¿Ø");
MenuItem exit = new MenuItem("¹Ø±Õ·þÎñ");
pop.add(monitor);
pop.addSeparator();
pop.add(file);
pop.addSeparator();
pop.add(screen);
pop.addSeparator();
pop.add(exit);
pop.addSeparator();
trayIcon = new TrayIcon(icon.getImage(), "ʵÑéÊÒµç×Ó½Ìѧ¼à¿ØÏµÍ³£¨·þÎñ¶Ë£©", pop);
// Õâ¾äºÜÖØÒª£¬Ã»ÓлᵼÖÂͼƬÏÔʾ²»³öÀ´
trayIcon.setImageAutoSize(true);
/*
* µã»÷ÓÒϽÇͼ±êµÄʼþ
*/
trayIcon.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
trayIcon.setImageAutoSize(true);
Server_Frame.this.setVisible(true);
}
}
});
try {
tray.add(trayIcon);
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tray.remove(trayIcon);
System.exit(0);
}
});
}
public void componentListener() {
/*
* ×îС»¯Ê±Òþ²Ø¸Ã´°¿Ú
*/
this.addWindowListener(new WindowAdapter() {
@Override
public void windowIconified(WindowEvent e) {
super.windowIconified(e);
Server_Frame.this.setVisible(false);
}
});
this.addWindowFocusListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
System.exit(0);
}
});
/*
* µã»÷¸Ã°´Å¥±íʾ¿ªÆôÁË¼à¿Ø¹¦ÄÜ
*/
btn[2].addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
for (int i = 0; i < bt.length; i++) {
bt[i].setEnabled(true);
}
isMonitor = true;
Server_Frame.getTextArea03().append(GenerateDate.getDate() + "ÆÁÄ»¼à¿ØÒÑ¿ªÆô£¡\n");
JOptionPane.showMessageDialog(null, "ÆÁÄ»¼à¿ØÒÑ¿ªÆô£¡");
}
});
/*
* Éæ¼°µÄ±äÁ¿Îª£ºisLarge
*/
btn[6].addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
isLarge = true;
JOptionPane.showMessageDialog(null, "·Å´ó¹¦ÄÜÒÑ¿ªÆô£¡");
Server_Frame.getTextArea03().append(GenerateDate.getDate() + "·Å´ó¹¦ÄÜÒÑ¿ªÆô£¡\n");
}
});
btn[7].addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
/*
* ÏÈ¿ªÆô¼à¿Ø¹¦ÄܲÅÄÜ·¢Îļþ
*/
if (!isMonitor) {
JOptionPane.showMessageDialog(null, "ÇëÏÈ¿ªÆô¼à¿Ø¹¦ÄÜ£¡Ã´Ã´ßÕ£¡");
} else if (Server.ipMap.size() <= 0) {
JOptionPane.showMessageDialog(null, "·Ö·¢Îļþ±ØÐëÖÁÉÙÓÐһ̨ѧÉúµçÄÔÁ¬½ÓÉÏ");
} else {
Server.fileFlag = true;
Server_Frame.getTextArea03().append("true");
}
}
});
/*
* 52¸ö°´Å¥,Èç¹û·Å´ó¹¦ÄÜÔÊÐí
*/
for (int i = 0; i < bt.length; i++) {
bt[i].addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (isMonitor == true) {
clickedNum = btMap.get(e.getSource());
if (isLarge == true) {
/*
* »ñÈ¡°´Å¥µã»÷Ô´Í·¶ÔÓ¦µÄÐòºÅ1~52
*/
/*
* Èç¹û¸ÃµçÄÔδÁ¬½Ó
*/
if (clickedNum > Server.ipMap.size()) {
Server_Frame.getTextArea03()
.append(GenerateDate.getDate() + clickedNum + " ºÅ µç ÄÔ Î´ Á´ ½Ó £¡\n");
} else {
new NewWatchFrame();
}
} else {
if (clickedNum > Server.ipMap.size()) {
Server_Frame.getTextArea03()
.append(GenerateDate.getDate() + clickedNum + " ºÅ µç ÄÔ Î´ Á´ ½Ó £¡\n");
} else {
JOptionPane.showMessageDialog(null, "ÇëÏÈ¿ªÆô·Å´ó¹¦ÄÜ£¡Ã´Ã´ßÕ£¡");
Server_Frame.getTextArea03().append(GenerateDate.getDate() + "ÇëÏÈ¿ªÆô·Å´ó¹¦ÄÜ£¡\n");
}
}
} else {
JOptionPane.showMessageDialog(null, "ÇëÏÈ¿ªÆô¼à¿Ø¹¦ÄÜ£¡");
}
}
});
}
/*
* ·¢ËÍÈ«Ìå³ÉÔ±°´Å¥
*/
bt01.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
label.setText("ÄãºÃ");
}
});
/*
* ·¢ËͰ´Å¥
*/
bt02.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
Server_Frame.getTextArea03().append("·¢ËÍ\n");
}
});
}
}