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 blocke.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<Component> lists = new ArrayList<Component>();Map<String, Component> map = new HashMap<String, Component>();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() {@Overridepublic 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() {@Overridepublic void actionPerformed(ActionEvent e) {SystemTray systemTray = SystemTray.getSystemTray();// 获得系统托盘对象try {systemTray.remove(trayIcon);addComplete(addIconToTray());} catch (AWTException e2) {// TODO Auto-generated catch blocke2.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;}@Overridepublic void mousePressed(MouseEvent e) {pressPoint = e.getPoint();}@Overridepublic void mouseReleased(MouseEvent e) {pressPoint = new Point();}@Overridepublic 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<String, Component> 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版本便签纸小项目相关推荐

  1. java便签_Java版本便签纸小项目

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

  2. 桌面便签纸怎么设置?这个小工具很多人不知道

    便签纸是办公时常用的工具,那桌面便签纸怎么设置呢?很多职场人士的工作电脑上都会放置有便签纸,需要记事的时候就撕下来一张或几张,将当天要做的事情记录在上面,然后通过便利贴胶粘在电脑桌面或屏幕边缘上,需要 ...

  3. java写便签_如何编写一个便签程序(用Java语言编写)

    如何编写一个便签程序(用Java语言编写) 热度:336   发布时间:2011-02-18 11:44:16 如何编写一个便签程序(用Java语言编写) 因为以前没有好好学习Java,都搞忘了,请大 ...

  4. 网页贴便签, Chrome特色网页便签纸 OurStickys

    便签纸在办公室随处可见, 随着互联网的发展, 网页便签纸也慢慢流行起来 OurStickys是chrome的一款特色网页便签纸 下载地址: https://chrome.google.com/webs ...

  5. 基于便签纸的无限延生学习方法

    基于之前讲过的化整为零的方式 采用不断的用便签纸去置换 燃尽 现有任务 这是一种基于敏捷开发increamental development的方法 很棒啦

  6. JAVA 版本微信公众管理开源项目招募伙伴

    大家好: j eecg开源社区,目前正在开展"JAVA 版本微信公众账号开源项目"的工作,欢迎有兴趣的朋友一起参与! 截止时间:20140510 采用技术: 1. JEECG微云开 ...

  7. 薄如便签纸的概念闪存U盘:贴在电脑上就能用

    你是不是总被概念产品吸引住?没错,它们的设计不被物理因素限制,也无需考虑很多不能实现的设计理念,所以无论从外观到内在,都充满了极强的未来感和时尚感. 拿我们最常用的U盘来说,想必许多人都拥有并正在使用 ...

  8. 电脑上的记事本便签纸怎么用

    在电脑上用的记事工具,主要分为记事本和便签纸两种.不同的记事软件,优势各有不同.用电脑记事本记事,方便记录长篇文字,便签纸却擅长分类记录简讯. 这两种记事工具都是电脑系统自带的记事工具,操作简单用起来 ...

  9. 日本公司研发出一款可食用的便签纸

    在上课或开会时肚子饿了怎么办?日本公司研发出一款"可以吃的便签本". 这款便签本使用的纸张为"威化纸",主要材料是淀粉.水和橄榄油,包括香草.橘子.草莓和咖喱四 ...

最新文章

  1. DS1302时钟芯片在STM32F0中的完整应用代码
  2. 黄了。Google中国版搜索
  3. EAGLView介绍
  4. 2019-03-18-算法-进化(实现strStr())
  5. c:forecah 参数param 不能作为对象名
  6. typecho除了首页其他大部分网页404怎么办?
  7. 贪心算法两船装载问题Java_贪心算法-最优装载问题
  8. 12、scala函数式编程集合
  9. 03-谷歌浏览器安装Sence
  10. java web中的重定向和转发,forward和sendRedriect
  11. 关于try...catch...finally中return的疑惑
  12. python3.5安装包_Python 3.5.4详细图文安装教程(附安装包) | 我爱分享网
  13. 示波器学习笔记(2)——模拟示波器
  14. 装机软件搜狗拼音输入法v11.5.0.5352去广告精简优化版
  15. 一篇文章看懂Oracle开窗函数
  16. 2021年中职“网络安全“江西省赛题—B-1:系统漏洞利用与提权
  17. 学习漫画应该如何入门?其实掌握这5种漫画套路就可以啦
  18. 恕我直言!千万别随便叫一个程序员为“码农”
  19. Log4J的入门简介学习【转】
  20. 「传统的互联网模式」呈现的是粗放式的,野蛮生长的状态

热门文章

  1. 2. 信息系统的项目管理基础
  2. 【带移动搜索功能】织梦dedecms手机WAP插件专业版 织梦自动建手机WAP站 PC+WAP数据同步更新 访问自动跳转
  3. 如何查看、复制caj、PDF文件文本内容
  4. 微信WeUI常见页面模板
  5. 某百亿量化金融公司base北上杭深现招岗位:C++量化系统开发工程师年base40-80万+bonus工作职责1. 参与交易平台的设计、开发与测试,实现交易策略、风控等需求;2. 开发交易
  6. Sublime Text使用技巧
  7. 调停者模式(Mediator) Java实现
  8. Vue自定义指令实现弹窗拖拽,四边拉伸及对角线拉伸
  9. 2014小学计算机统计表,2014年春小学部考试成绩统计表.xls
  10. 【51Nod1585】买邮票送邮票