番茄时间管理法(Pomodoro Technique):一个番茄是如何让你工作更有效率的

如果你经常读一些关于提高工作效率或时间管理类的博客,一定听说过番茄时间管理法(Pomodoro Technique)。这是一种极好的帮助你集中注意力、获得更高工作效率的方法。

基本上,它的实施方法是这样的:

确定你想要做什么(例如:翻译一篇外文)。

设定一个25分钟的定时器。

工作,直到定时器时间到:这就是一个“番茄钟”。

休息5分钟,继续下一个番茄钟

每4个番茄钟做一次长时间的休息。

大多数人都会对其做一些细微调整来适应自己:例如,你可以选择每两个番茄钟——而不是四个,做一次长时间的休息。这特别是你刚开始应用这种方法时。

软件使用到的方法:

界面圆角实现代码:

//圆角

AWTUtilities.setWindowShape(this,

new RoundRectangle2D.Double( 0.0D, 0.0D,

getWidth(),

getHeight(), 26.0D, 26.0D));

隐藏Frame标题代码:

setUndecorated(true);

自己实现的标题,标题是一个panel,给标题增加了鼠标点击移动的事件:

public class MouseMoveListener extends MouseAdapter implements MouseMotionListener {

private Component parentComponent;

private Component dragCom;

private Point offset;

public synchronized void install(Component comp,Component dragCom) {

uninstall();

parentComponent = comp;

this.dragCom = dragCom;

dragCom.addMouseListener(this);

dragCom.addMouseMotionListener(this);

}

public synchronized void uninstall() {

if (dragCom != null) {

dragCom.removeMouseListener(this);

dragCom.removeMouseMotionListener(this);

dragCom = null;

}

}

@Override

public void mousePressed(MouseEvent e) {

if (e.getSource() == dragCom)

offset = e.getPoint();

}

@Override

public void mouseDragged(MouseEvent e) {

if (e.getSource() != dragCom)

return;

final int x = parentComponent.getX();

final int y = parentComponent.getY();

final Point lastAt = e.getPoint();

parentComponent.setLocation(x + lastAt.x - offset.x, y + lastAt.y - offset.y);

}

}

上面代码使用方法如下:

MouseMoveListener mouseMoveListener = new MouseMoveListener();

mouseMoveListener.install(this, titlePanel);

install参数第一个是当前的窗体,第二个是可以点击移动的对象。

系统托盘图标实现如下:

private void initTrayIcon() {

PopupMenu popup = new PopupMenu();

MenuItem showItem = new MenuItem("显示窗体");

ActionListener listener = new ActionListener() {

public void actionPerformed(ActionEvent e) {

setVisible(true);

setExtendedState(Frame.NORMAL);

SystemTray.getSystemTray().remove(trayIcon);

}

};

showItem.addActionListener(listener);

popup.add(showItem);

MenuItem exitItem = new MenuItem("退出");

exitItem.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

SystemTray.getSystemTray().remove(trayIcon);

System.exit(0);

}

});

popup.add(exitItem);

// 根据image、提示、菜单创建TrayIcon

this.trayIcon = new TrayIcon(Icon.icon16.getImage(), "\u756a\u8304\u65f6\u95f4\u7ba1\u7406", popup);

// 给TrayIcon添加事件监听器

this.trayIcon.addActionListener(listener);

}

public void minimizeToTray() {

SystemTray tray = SystemTray.getSystemTray();

try {

tray.add(this.trayIcon);

} catch (AWTException ex) {

ex.printStackTrace();

}

}

在eclipse中运行右键菜单时,如果有

乱码,可以在myeclipse中做如下修改(正常环境一般不会乱码):

在Run configration中

添加:-Dfile.encoding=GB18030

倒计时:使用的timer和timertask

界面布局,多层的jpanel嵌套使用BorderLayout,3个按钮显示的panel使用了CardLayout

运行截图:

使用说明:

界面中间为25分钟的番茄时间,

左侧按钮为5分钟的短时间休息,

右侧为10分钟的长时间休息。

java番茄钟_番茄时间管理 - java Swing版相关推荐

  1. java redis管理_优雅时间管理Java轻松做到,想学么?

    原标题:优雅时间管理Java轻松做到,想学么? 来源 |http://rrd.me/gCQHp 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失 ...

  2. 支持java虚拟主机_为何缺乏支持Java的虚拟主机

    现在很多站长们,都青睐于香港虚拟主机建站.现在常见的是asp和PHP的程序空间很多,但是Java的少之又少,下面小编我给大家聊一聊! 一.香港Java虚拟主机成本高 使用Java程序建站,就必须要用支 ...

  3. 我好像很久没安利软件给大家啦,今天给大家种草一款OmniFocus for Mac(GTD时间管理工具)标准版

    OmniFocus for Mac版是设计用来快速捕捉你的想法,并允许您存储,管理和处理可操作的待办事项.完美的GTD系统,在任何任务上都足够灵活的管理风格,OmniFocus 3 mac中给你一个始 ...

  4. mysql java 日期格式化_(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...

    java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...

  5. 今天三十分钟会议看时间管理

    今天开了三十分钟的会议有关于时间管理,疫情封闭的一个月时间以来,缺卡次数增加,自己在家对于时间管理方面有了一些懈怠,为了能更好的做好时间管理,首先要从打卡坐起. 利用好自己手里的智能工具,如闹铃,循环 ...

  6. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  7. java .classpath配置_轻松玩转Java配置的Classpath

    和Java类路径(classpath)打交道的过程中,开发者偶尔会遇到麻烦.这是因为,类装载器实际装入的是哪一个类有时并不显而易见,当应用程序的classpath包含大量的类和目录时,情况尤其严重.本 ...

  8. java session使用_使用Neo4j和Java进行大数据分析 第2部分

    本文的第一部分介绍了Neo4j及其Cypher查询语言.如果您已经阅读了第1部分,那么您已经了解了为什么Neo4j和其他图形数据库特别受社交图形或网络中用户之间关系建模的影响.您还在开发环境中安装了N ...

  9. java必读书籍_最佳5本Java性能调优书籍–精选,必读

    java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...

  10. java future用法_纯干货:Java学习过程中的21个知识点和技术点

    我们在Java学习过程中要学会抓重点,善于总结,Java学习过程中常见的21个知识点和技术点你知道吗?下面和千锋广州小编一起来看看吧! 1. JVM相关 对于刚刚接触Java的人来说,JVM相关的知识 ...

最新文章

  1. DOS网络命令之 tracert
  2. Eclipse生成get,set方法,无参构造方法和有参构造方法
  3. wordcloud python3.7_[原创]win7/64位系统+python3.7.2下安装wordcloud库失败之解决——一个莫名其妙的方法...
  4. 开环增益的频率依赖性
  5. [转自李战博客]悟透JavaScript
  6. pkcs1解密 springboot_Spring Boot RSA 非对称加密
  7. PAT甲级1019 回文数
  8. jenkins, docker-composer
  9. 免校准的电量计量芯片_免校准的高精度计量芯片HLW8032
  10. 【建议收藏】 11个适合程序员逛的在线社区
  11. 【主题词——玫瑰花】
  12. JavaScript 面向对象详解
  13. 域控制器组策略:部署软件自动下发
  14. 玩转oled屏(基于SPI协议)
  15. 2021年中式面点师(中级)最新解析及中式面点师(中级)模拟考试题库
  16. C8051F C2/JTAG接口
  17. phpmywind 手机站多语言版本
  18. 早期计算机音乐创作的歌曲,计算机音乐创作类普通组
  19. mysql数据库时区配置
  20. vue elementui 复杂表头 table

热门文章

  1. 《麦肯锡方法》第9章 头脑风暴-思维导图
  2. 马蜂窝视频编辑框架设计及在 iOS 端的业务实践
  3. 基于springboot,vue图书管理系统
  4. 一个很好的多代理服务器调度软件-ProxyExpert(绿色软件) - 『 软件使用交流 』 - 赢政天下 - YingZheng.com - Powered by Discuz!...
  5. 中国移动Mas(普通短信)
  6. yui3dialog
  7. .NET Framework 版本选择参考
  8. android关机铃声代码,android系统添加关机铃声
  9. 一个java swt桌面程序开发到打包的总结(1)(收集)
  10. 听力测试英语软件初中,初中生英语听力软件