源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

基于java开发之系统托盘的应用

  • 时间:2021-12-30 16:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于java开发之系统托盘的应用
[b]项目结构:[/b] [img]http://files.jb51.net/file_images/article/201305/2013050216451235.png[/img] [b]运行效果:[/b] [img]http://files.jb51.net/file_images/article/201305/2013050216451236.png[/img] [img]http://files.jb51.net/file_images/article/201305/2013050216451237.png[/img] ======================================================================== 下面是代码部分======================================================================== /tray/src/com/b510/tray托盘/DesktopCapture.java
[u]复制代码[/u] 代码如下:
package com.b510.tray托盘;  import java.awt.event.ActionEvent;  import java.awt.event.ActionListener;  import java.awt.event.WindowAdapter;  import java.awt.event.WindowEvent;  import javax.swing.JFrame;  import javax.swing.JOptionPane;  import javax.swing.UIManager;  public class DesktopCapture extends JFrame implements ActionListener {      /**       * 1.改变双击托盘截图为单击托盘截图 2.修复了托盘后无反应BUG 3.将放大镜提示框移至左上角和右上角       */      private static final long serialVersionUID = 1L;      // JButton confirm;      // BufferedImage desktopImg;      MyTray tray;      boolean iconed = false;      public DesktopCapture() {          super("EasyCapture");          init();          // 当点击"-"最小化按钮时,系统会最小化到托盘          addWindowListener(new WindowAdapter() {              public void windowIconified(WindowEvent e) {                  iconed = true;                  setVisible(false);              }              // 当点击"X"关闭窗口按钮时,会询问用户是否要最小化到托盘              // 是,表示最小化到托盘,否,表示退出              public void windowClosing(WindowEvent e) {                  int option = JOptionPane.showConfirmDialog(DesktopCapture.this,                          "是否最小化到托盘?", "提示:", JOptionPane.YES_NO_OPTION);                  if (option == JOptionPane.YES_OPTION) {                      iconed = true;                      setVisible(false);                  } else {                      System.exit(0);                  }              }          });          pack();          setSize(350, 230);          setLocation(500, 300);          setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);          setResizable(false);          setVisible(true);      }      void init() {          tray = new MyTray(DesktopCapture.this);      }      // 截图      public void capture() {      }      public static void main(String[] args) {          // TODO Auto-generated method stub          try {              UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());              DesktopCapture desk = new DesktopCapture();          } catch (Exception e) {              // TODO Auto-generated catch block              e.printStackTrace();          }      }      @Override      public void actionPerformed(ActionEvent e) {      }  }
/tray/src/com/b510/tray托盘/MyTray.java
[u]复制代码[/u] 代码如下:
package com.b510.tray托盘;  import java.awt.AWTException;  import java.awt.Image;  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.MouseEvent;  import java.awt.event.MouseListener;  import javax.swing.ImageIcon;  import javax.swing.JFrame;  public class MyTray implements ActionListener, MouseListener {      private Image icon;// 图标      private TrayIcon trayIcon;      private SystemTray systemTray;// 系统托盘      private DesktopCapture frame; // 托盘所属主窗体      private PopupMenu pop = new PopupMenu(); // 弹出菜单      private MenuItem capture = new MenuItem("capture");      private MenuItem show = new MenuItem("open");      private MenuItem exit = new MenuItem("exit");      public MyTray(DesktopCapture frame) {          this.frame = frame;          // icon = Toolkit.getDefaultToolkit().getImage("./images/xiaomai.png");          icon = new ImageIcon(this.getClass().getClassLoader().getResource(                  "image/xiaomai.png")).getImage();          if (SystemTray.isSupported()) {              systemTray = SystemTray.getSystemTray();              trayIcon = new TrayIcon(icon, "单击直接截图-EasyCapture", pop);              pop.add(capture);              pop.add(show);              pop.add(exit);              try {                  systemTray.add(trayIcon);              } catch (AWTException e1) {                  e1.printStackTrace();                  trayIcon.addMouseListener(this);              }          }          trayIcon.addMouseListener(this);          show.addActionListener(this);          exit.addActionListener(this);          capture.addActionListener(this);      }      @Override      public void actionPerformed(ActionEvent e) {          if (e.getSource() == show) {              frame.iconed = false;              frame.setVisible(true);              frame.setExtendedState(JFrame.NORMAL);          } else if (e.getSource() == capture) {              frame.capture();          } else {              System.exit(0);          }      }      // ����¼�      @Override      public void mouseClicked(MouseEvent e) {          if (e.getClickCount() == 1 && e.getButton() != MouseEvent.BUTTON3) {              frame.capture();          }      }      @Override      public void mouseEntered(MouseEvent arg0) {          // TODO Auto-generated method stub      }      @Override      public void mouseExited(MouseEvent arg0) {          // TODO Auto-generated method stub      }      @Override      public void mousePressed(MouseEvent arg0) {          // TODO Auto-generated method stub      }      @Override      public void mouseReleased(MouseEvent arg0) {          // TODO Auto-generated method stub      }  }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部