托盤

import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
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.awt.event.WindowListener;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;


import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;


public class ServerMain extends JFrame implements ActionListener,WindowListener{
private TrayIcon trayIcon;//托盤圖標
private SystemTray systemTray;//系統托盤


public ServerMain() throws UnknownHostException
{
super("MobileMouse服務端");
systemTray = SystemTray.getSystemTray();//獲得系統托盤的實例
setSize(300,300);
addWindowListener(this);
setResizable(false);
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.setVisible(true);
// this.setLayout(new BorderLayout());
// this.setLayout(null);
// setLocationRelativeTo(this);

JLayeredPane pa = new JLayeredPane(); // 容器

JLabel iplbl=new JLabel("本機IP爲"+InetAddress.getLocalHost());
iplbl.setBounds(50,30,200,50);
JLabel notice=new JLabel("請在android客戶端輸入此IP");
notice.setBounds(55,70,200,50);
JButton exitbtn=new JButton("退出服務端");
exitbtn.setBounds(70, 200, 150, 50);
exitbtn.addActionListener(this);
 
pa.add(exitbtn);
pa.add(iplbl);
pa.add(notice);
this.add(pa);
pa.setVisible(true);
exitbtn.setVisible(true);
trayicon();//托盤

new MobileMouse().start();
}

public void trayicon(){
try {
trayIcon = new TrayIcon(ImageIO.read(new File("images/icon.gif")));
} catch (IOException e1) {
e1.printStackTrace();
}
PopupMenu pop = new PopupMenu(); // 構造一個右鍵彈出式菜單
MenuItem show = new MenuItem("打開程序(s)");
MenuItem exit = new MenuItem("退出程序(x)");
pop.add(show);
pop.add(exit);
trayIcon = new TrayIcon(trayIcon.getImage(), "MobileMouse服務端", pop);
try {
systemTray.add(trayIcon);//設置托盤的圖標
} catch (AWTException e1) {
e1.printStackTrace();
}

this.addWindowListener(new WindowAdapter(){
public void windowIconified(WindowEvent e){
dispose();//窗口最小化時dispose該窗口
}
});


trayIcon.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){
if(e.getClickCount() == 2)//雙擊托盤窗口再現
setExtendedState(Frame.NORMAL);
setVisible(true);
}
});
show.addActionListener(new ActionListener() { 


public void actionPerformed(ActionEvent e) {


systemTray.remove(trayIcon); // 從系統的托盤實例中移除托盤圖標


setExtendedState(JFrame.NORMAL);


setVisible(true); // 顯示窗口


toFront();


}


});
exit.addActionListener(new ActionListener() { // 點擊“退出演示”菜單後退出程序


public void actionPerformed(ActionEvent e) {


System.exit(0); // 退出程序


}


});
}
public static void main(String args[]) throws UnknownHostException
{

new ServerMain();
}


@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub

}


@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub

}


@Override
public void windowClosing(WindowEvent arg0) {
exitSystem();
}


@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub

}


@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub

}


@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub

}


@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub

}


@Override
public void actionPerformed(ActionEvent arg0) {
exitSystem();
}
//退出服務器
private void exitSystem(){
if(JOptionPane.showConfirmDialog(this,"你真的要退出服務器嗎?","退出確認",
JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){
System.exit(0);
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章