ramlife

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

虽然网上有很多各种各样的番茄时钟,但是我只需要最简单的半小时间隔进行全屏提醒就可以了。但是找来找去,只有一个 daping 软件能够满足我的基本要求,可惜这个软件有广告。
所以为了满足需求,只能动手自己写一个最简单的番茄用一用。

软件功能:

  1. 工作28分钟,休息2分钟,一直循环。
  2. 软件在休息的时候进行全屏遮盖强制使用者休息,在工作的时候自动缩小到左上角,也可以最小化。

因为最近刚好在学习JAVA,所以就用JAVA来写。
源代码如下:

package tomatoDemo;

import java.util.Date;

/**
 * @author Administrator
 *
 */
public class TomatoDemo {

	private static final long T_MAX = 28 * 60 * 1000;
	private static final long T_MIN = 2 * 60 * 1000;
	private static final long T_PERIOD = T_MAX + T_MIN;
	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
		UI_1 ui1 = new UI_1();
		ui1.disp();

		long t = new Date().getTime();
		long tmax, tmin, tperiod;
		
		
		while(true)
		{
			tmax = t + T_MAX;
			tmin = tmax + T_MIN;
			tperiod = t + T_PERIOD;
			
			while (t < tperiod)
			{
				t= new Date().getTime();
				
				if (t >= tmax)
				{
					ui1.setDispMax();
				}
				
				if (t >= tmin)
				{
					ui1.setDispMin();
				}
				
				Thread.sleep(1000);
			}
		}
	}

}

package tomatoDemo;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * @author Administrator
 *
 */
public class UI_1 {
	private int time;
	private Frame f;
	private Label l;
	private Dimension d;
	
	public void disp()
	{
		f = new Frame("休息");
		
		d = Toolkit.getDefaultToolkit().getScreenSize();
		
		f.setSize(30, 10);
		f.setVisible(true);
		
		l = new Label("休息!");
		l.setFont(new Font("consola", 1, 45));
		f.add(l);
		
		f.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
	}
	
	public void setDispMax()
	{
		f.setSize(d.width, d.height);
		f.setExtendedState(Frame.NORMAL);
		f.setAlwaysOnTop(true);
		f.toFront();
		f.setAlwaysOnTop(false);
	}
	
	public void setDispMin()
	{
		f.setSize(30, 10);
		f.setExtendedState(Frame.NORMAL);
		f.setAlwaysOnTop(true);
		f.toFront();
		f.setAlwaysOnTop(false);
	}
}

编译完成以后,使用 exe4j.exe 来生成可执行文件。但是运行之前需要在环境变量里面增加 EXE4J_JAVA_HOME = C:\Program Files\Java\jre1.8.0_111, 当然具体的地址根据自己的机器修改。

源代码也可以到 https://github.com/ramlife/tomato 上面 clone 一下。

posted on 2016-12-29 14:27  ramlife  阅读(940)  评论(0编辑  收藏  举报