广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    使用Java实现系统托盘功能的介绍(附源码以及截图)

    2018-11-14 08:49:45 次阅读 稿源:互联网
    零七广告

    Java中如何,实现系统托盘功能.

    示例图

    项目包结构图

     

    系统运行截图

    应用核心逻辑说明,隐藏到托盘实质就是讲窗体隐藏.即setVisible(false),显示窗体即就是讲setVisible(true).

    项目代码如下:
    代码如下:

    package org.pdp.frame;

     import java.awt.AWTException;
     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.net.URL;

     import javax.swing.ImageIcon;
     import javax.swing.JFrame;
     import javax.swing.JMenu;
     import javax.swing.JMenuBar;
     import javax.swing.JMenuItem;

     
     public class MainFrame extends JFrame implements ActionListener{

         private static final long serialVersionUID = -7078030311369039390L;
         private JMenu menu;
         private JMenuBar jmenuBar;
         private String [] jmItemName = {"置于托盘","系统退出"};

         public MainFrame(){
             super("电话薄");
             init();
             this.setSize(500,400);
             this.setJMenuBar(jmenuBar);
             this.setLocationRelativeTo(null);
             systemTray();    //系统托盘
         }

         /**
          * 初始化界面
          */
         public void init(){
             menu = new JMenu("系统窗体");
             for(int i=0; i<jmItemName.length; i++){
                 JMenuItem menuItem = new JMenuItem(jmItemName[i]);
                 menuItem.addActionListener(this);
                 menu.add(menuItem);
             }
             this.jmenuBar = new JMenuBar();
             this.jmenuBar.add(menu);
         }

         @Override
         public void actionPerformed(ActionEvent e) {
             String actions = e.getActionCommand();
             if("置于托盘".equals(actions)){
                 this.setVisible(false);
             }
             if("系统退出".equals(actions)){
                 System.exit(0);
             }

         }

         /**系统托盘图标处理.*/
         private void  systemTray(){
             if(SystemTray.isSupported()){    //判断系统是否支持托盘功能.
                 URL resource = this.getClass().getResource("systray.jpg");    //获得图片路径
                 ImageIcon icon = new ImageIcon(resource); //创建图片对象
                 PopupMenu popupMenu = new PopupMenu(); //创建弹出菜单对象
                 MenuItem itemExit = new MenuItem("退出系统");    //创建弹出菜单中的退出项
                 MenuItem itemShow = new MenuItem("显示窗体"); //创建弹出菜单中的显示主窗体项.
                 itemExit.addActionListener(new ActionListener() {     //给退出像添加事件监听
                     @Override
                     public void actionPerformed(ActionEvent e) {
                         System.exit(0);
                     }           
                 });
                 itemShow.addActionListener(new ActionListener() { //给窗体最小化添加事件监听.
                     @Override
                     public void actionPerformed(ActionEvent e) {
                         setVisible(true);
                     }
                 });
                 popupMenu.add(itemExit);
                 popupMenu.add(itemShow);
                 TrayIcon trayIcon = new TrayIcon(icon.getImage(),"电话薄系统",popupMenu);
                 SystemTray sysTray = SystemTray.getSystemTray();
                 try {
                     sysTray.add(trayIcon);
                 } catch (AWTException e1) {    }
             }
         }

         /**
          * 主方法
          * @param args
          */
         public static void main(String[] args) {

             new MainFrame().setVisible(true);

         }

     }

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告