java便签_Java版本便签纸小项目
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版本便签纸小项目相关推荐
- java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...
原标题:[附源码]用Java写了一个类QQ界面聊天小项目,可在线聊天! 目录: 1.功能实现 2.模块划分 3.使用到知识 4.部分代码实现 5.运行例图 1.功能实现 1.修改功能(密码.昵称.个性 ...
- java吃货联盟系统源码_小项目,吃货联盟,java初级小项目,源代码
小项目,吃货联盟,java初级小项目,源代码 1importjava.util.Scanner;23/**4* 吃货联盟订餐管理系统5*6*/7publicclassOrderingMsg {8pub ...
- Java版本便签纸小项目
1 支持如下功能: 1 退出 2 新建多个 3 双击/三击 实现隐藏删除 4 支持便签纸管理-->查看,删除 5 支持拖拽 2 效果图 3 package com.wanju.tool.func ...
- java pdf验签_java pdf验签
java pdf验签 [2021-02-09 19:35:21] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/(\s ...
- java 翻译接口_java版本 百度翻译接口
/** * 百度翻译的接口 * @author pamchen-1 * */ public class FanyiProcess { public static String getTranslate ...
- java素数对算法_Java版本 质数(也叫素数)算法
int MaxNum = 100000; // 查找 2到MaxNum 这范围内的素数 ( MaxNum 要>= 2 ). int i, j; // 计数器. int PrimeTemp [] ...
- java的坐标转换_java版本坐标转换
1 /* * 2 * 各地图API坐标系统比较与转换; 3 * WGS84坐标系:即地球坐标系,国际上通用的坐标系.设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系, 4 * 谷歌 ...
- java 台球_Java入门和一个台球小项目
今天是入门学习Java的第二天,从今天起就算是正式地接触到了java语言编写的内容,以下是对于今天学习内容的一个梳理. 1. Java的核心优势是跨平台/可移植性. 其他特性:安全性,面向对象,简单性 ...
- 蜘蛛纸牌java设计思路_Java课程设计蜘蛛纸牌 实战项目技巧总结
相信大家对蜘蛛纸牌这个游戏本身并不陌生,它是一款桌面休闲益智类游戏.本文小编将来介绍Java课程设计--蜘蛛纸牌.本文主要总结了该项目的简介.采用技术.亮点和主要类及关键代码. 一.蜘蛛纸牌项目简介. ...
最新文章
- PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展的方法】
- Redis 常用命令学习三:哈希类型命令
- 【bzoj3991】[SDOI2015]寻宝游戏 树链的并+STL-set
- 原来咱们公司准备裁员还有一部份原因是这样的!
- python print 变量_0、python 的 print()函数、变量和赋值
- 95-910-150-源码-FlinkSQL-Flink SQL 的元数据管理
- 【转】CCScale9Sprite和CCControlButton
- python函数使用说明
- MySQL查询语句格式总结
- 怎样在Excel中添加水印?学会这个方法可以轻松搞定
- word文件做一半未响应_WORD文件一编辑就未响应如何处理
- 增加收入的销售 OKR 案例 – 用这些 OKR 范例来设定你的销售团队目标
- 新能源汽车厂四大派系
- E. Thematic Contests(离散化+排序+二分)Codeforces Round #521 (Div. 3)
- Zabbix启动失败,提示Zabbix-agent.servic never wrote its PID file,failing
- 什么是二维条码与及特点
- Python筛选某列满足条件的值(isin用法)
- 迁移学习系列--领域泛化
- 阿里云ACP云计算错题集101-120
- TimeZone-时间戳测试
热门文章
- MATLAB及app designer中函数:定义与调用
- IsFinite (m_CachedRange.first) IsFinite (m_CachedRange.second) 的解决参考
- 投资银行业务过关必做1500题
- H5--大概的,没事看看
- java笔记 方法_Java笔记-方法
- 伦敦国王学院计算机申请要求,2020年伦敦国王学院高级计算机专业研究生申请条件及世界排名|学费介绍...
- 通过NFC挂载加载应用
- 从编程小白到入门码农的五个途径
- html5水涟漪动画,CSS3水波涟漪动画定位样式制作教程
- Spring双生武魂之IOC