1 支持如下功能:

1 退出

2 新建多个

3 双击/三击 实现隐藏删除

4 支持便签纸管理--》查看,删除

5 支持拖拽

2 效果图

3

package com.wanju.tool.function;

import java.awt.AWTException;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.MenuItem;

import java.awt.Point;

import java.awt.PopupMenu;

import java.awt.Rectangle;

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.net.URL;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Map.Entry;

import javax.swing.BorderFactory;

import javax.swing.ImageIcon;

import javax.swing.JDialog;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JTextArea;

import javax.swing.SwingConstants;

public class ConvientTool extends JFrame {

public static void main(String args[]) {

ConvientTool frame = new ConvientTool();

//frame.setVisible(true);

try {

//frame.addIconToTray();

frame.addComplete(frame.addIconToTray());

} catch (AWTException e) {

e.printStackTrace();

}

}

public void addComplete(TrayIcon trayIcon)

{

SystemTray systemTray = SystemTray.getSystemTray();// 获得系统托盘对象

try {

systemTray.add(trayIcon);

} catch (AWTException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}// 将托盘图片添加到系统托盘中

}

public ConvientTool() {

//super();

//setTitle("使用系统托盘");

//setBounds(100, 100, 500, 375);

//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//

//final JLabel label = new JLabel();

//label.setForeground(new Color(0, 128, 0));

//label.setFont(new Font("", Font.BOLD, 16));

//label.setHorizontalAlignment(SwingConstants.CENTER);

//label.setText("请查看系统托盘中的变化!");

//getContentPane().add(label, BorderLayout.CENTER);

}

List lists = new ArrayList();

Map map = new HashMap();

private int dialogIndex = 0;

TrayIcon trayIcon = null;

public TrayIcon addIconToTray() throws AWTException {

if (SystemTray.isSupported()) {// 判断系统是否支持系统托盘功能

URL resource = this.getClass().getResource("01.jpg");// 获得图片路径

ImageIcon icon = new ImageIcon(resource);// 创建图片对象

PopupMenu popupMenu = new PopupMenu();// 创建弹出菜单对象

MenuItem item = new MenuItem("退出");// 创建“退出”菜单项目对象

item.addActionListener(new ActionListener() {// 为菜单项目添加动作监听器

public void actionPerformed(ActionEvent e) {

System.exit(0);// 退出系统

}

});

MenuItem item1 = new MenuItem("新建便签纸");

item1.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

JDialog dialog = new JDialog();

JTextArea area = new JTextArea();

area.setBackground(new Color(255, 255, 128));

area.setBorder(BorderFactory.createLineBorder(Color.yellow,

2));

area.setToolTipText("双击隐藏,三击删除此便签纸");

JLabel label = new JLabel(" ");

dialog.add(label, BorderLayout.NORTH);

dialog.add(area, BorderLayout.CENTER);

dialog.setSize(250, 300);

dialog.setUndecorated(true);

dialog.setResizable(true);

Dimension screenSize = Toolkit.getDefaultToolkit()

.getScreenSize();

Dimension frameSize = dialog.getSize();

dialog.setLocation((screenSize.width - frameSize.width) / 1

- 100 + 10 * dialogIndex,

(screenSize.height - frameSize.height) / 2 + 10

* dialogIndex);

MouseAdapter mouseAdapter = new WindowDragListener(dialog);

dialog.addMouseListener(mouseAdapter);

dialog.addMouseMotionListener(mouseAdapter);

//dialog.setTitle(""+dialogIndex);

dialog.setVisible(true);

lists.add(dialog);

map.put("" + dialogIndex, dialog);

dialogIndex++;

}

});

MenuItem item2 = new MenuItem("隐藏便签纸");

MenuItem item3 = new MenuItem("刷新");

item2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

for (int i = 0; i < lists.size(); i++) {

((JDialog) lists.get(i)).setVisible(false);

}

}

});

PopupMenu pagesMenu = new PopupMenu("管理便签纸");

addPage(pagesMenu);

popupMenu.add(item1);// 将“退出”菜单项目添加到弹出菜单中

popupMenu.add(pagesMenu);

popupMenu.add(item2);

popupMenu.add(item3);

popupMenu.add(item);// 将“退出”菜单项目添加到弹出菜单中

trayIcon = new TrayIcon(icon.getImage(), "使用系统托盘",

popupMenu);// 创建托盘图片对象

item3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

SystemTray systemTray = SystemTray.getSystemTray();// 获得系统托盘对象

try {

systemTray.remove(trayIcon);

addComplete(addIconToTray());

} catch (AWTException e2) {

// TODO Auto-generated catch block

e2.printStackTrace();

}// 将托盘图片添加到系统托盘中

}

});

}

return trayIcon;

}

class WindowDragListener extends MouseAdapter {

private JDialog dialog;

private Point pressPoint = new Point();

public WindowDragListener() {

// TODO Auto-generated constructor stub

}

public WindowDragListener(JDialog dialog) {

this.dialog = dialog;

}

@Override

public void mousePressed(MouseEvent e) {

pressPoint = e.getPoint();

}

@Override

public void mouseReleased(MouseEvent e) {

pressPoint = new Point();

}

@Override

public void mouseDragged(MouseEvent e) {

Rectangle r = dialog.getBounds();

dialog.setLocation(r.x + (e.getX() - pressPoint.x), r.y

+ (e.getY() - pressPoint.y));

}

public void mouseClicked(MouseEvent evt) {

if (evt.getClickCount() == 3) {

//lists.remove(dialog);

//map.remove(dialog.getTitle());

//dialog.dispose();

// 处理鼠标三击

} else if (evt.getClickCount() == 2) {

// 处理鼠标双击

dialog.setVisible(false);

}

}

}

public void addPage(PopupMenu pagesMenu) {

for (Entry entity : map.entrySet()) {

// PopupMenu subMenu = new PopupMenu(entity);

MenuItem item = new MenuItem(entity.getKey() + " 查看");

MenuItem item2 = new MenuItem(entity.getKey() + " 删除");

final String tempString = entity.getKey();

item.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (map.get(tempString) instanceof JDialog) {

JDialog dialog = (JDialog) map.get(tempString);

dialog.setVisible(true);

}

}

});

item2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (map.get(tempString) instanceof JDialog) {

JDialog dialog = (JDialog) map.get(tempString);

lists.remove(dialog);

dialog.dispose();

}

map.remove(tempString);

}

});

pagesMenu.add(item);

pagesMenu.add(item2);

}

}

}

java便签_Java版本便签纸小项目相关推荐

  1. java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...

    原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...

  2. java吃货联盟系统源码_小项目,吃货联盟,java初级小项目,源代码

    小项目,吃货联盟,java初级小项目,源代码 1importjava.util.Scanner;23/**4* 吃货联盟订餐管理系统5*6*/7publicclassOrderingMsg {8pub ...

  3. Java版本便签纸小项目

    1 支持如下功能: 1 退出 2 新建多个 3 双击/三击 实现隐藏删除 4 支持便签纸管理-->查看,删除 5 支持拖拽 2 效果图 3 package com.wanju.tool.func ...

  4. java pdf验签_java pdf验签

    java pdf验签 [2021-02-09 19:35:21]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/(\s ...

  5. java 翻译接口_java版本 百度翻译接口

    /** * 百度翻译的接口 * @author pamchen-1 * */ public class FanyiProcess { public static String getTranslate ...

  6. java素数对算法_Java版本 质数(也叫素数)算法

    int MaxNum = 100000; // 查找 2到MaxNum 这范围内的素数 ( MaxNum 要>= 2 ). int i, j; // 计数器. int PrimeTemp [] ...

  7. java的坐标转换_java版本坐标转换

    1 /* * 2 * 各地图API坐标系统比较与转换; 3 * WGS84坐标系:即地球坐标系,国际上通用的坐标系.设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, 4 * 谷歌 ...

  8. java 台球_Java入门和一个台球小项目

    今天是入门学习Java的第二天,从今天起就算是正式地接触到了java语言编写的内容,以下是对于今天学习内容的一个梳理. 1. Java的核心优势是跨平台/可移植性. 其他特性:安全性,面向对象,简单性 ...

  9. 蜘蛛纸牌java设计思路_Java课程设计蜘蛛纸牌 实战项目技巧总结

    相信大家对蜘蛛纸牌这个游戏本身并不陌生,它是一款桌面休闲益智类游戏.本文小编将来介绍Java课程设计--蜘蛛纸牌.本文主要总结了该项目的简介.采用技术.亮点和主要类及关键代码. 一.蜘蛛纸牌项目简介. ...

最新文章

  1. PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展的方法】
  2. Redis 常用命令学习三:哈希类型命令
  3. 【bzoj3991】[SDOI2015]寻宝游戏 树链的并+STL-set
  4. 原来咱们公司准备裁员还有一部份原因是这样的!
  5. python print 变量_0、python 的 print()函数、变量和赋值
  6. 95-910-150-源码-FlinkSQL-Flink SQL 的元数据管理
  7. 【转】CCScale9Sprite和CCControlButton
  8. python函数使用说明
  9. MySQL查询语句格式总结
  10. 怎样在Excel中添加水印?学会这个方法可以轻松搞定
  11. word文件做一半未响应_WORD文件一编辑就未响应如何处理
  12. 增加收入的销售 OKR 案例 – 用这些 OKR 范例来设定你的销售团队目标
  13. 新能源汽车厂四大派系
  14. E. Thematic Contests(离散化+排序+二分)Codeforces Round #521 (Div. 3)
  15. Zabbix启动失败,提示Zabbix-agent.servic never wrote its PID file,failing
  16. 什么是二维条码与及特点
  17. Python筛选某列满足条件的值(isin用法)
  18. 迁移学习系列--领域泛化
  19. 阿里云ACP云计算错题集101-120
  20. TimeZone-时间戳测试

热门文章

  1. MATLAB及app designer中函数:定义与调用
  2. IsFinite (m_CachedRange.first) IsFinite (m_CachedRange.second) 的解决参考
  3. 投资银行业务过关必做1500题
  4. H5--大概的,没事看看
  5. java笔记 方法_Java笔记-方法
  6. 伦敦国王学院计算机申请要求,2020年伦敦国王学院高级计算机专业研究生申请条件及世界排名|学费介绍...
  7. 通过NFC挂载加载应用
  8. 从编程小白到入门码农的五个途径
  9. html5水涟漪动画,CSS3水波涟漪动画定位样式制作教程
  10. Spring双生武魂之IOC