基于java开发之系统托盘的应用_Java教程-查字典教程网
基于java开发之系统托盘的应用
基于java开发之系统托盘的应用
发布时间:2016-12-28 来源:查字典编辑
摘要:项目结构:运行效果:============================================================...

项目结构:

运行效果:

========================================================================

下面是代码部分:

========================================================================

/tray/src/com/b510/tray托盘/DesktopCapture.java

复制代码 代码如下:

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

复制代码 代码如下:

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

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Java学习
    热门Java学习
    编程开发子分类