个人使用的简单番茄时钟,使用 java 编写。

虽然网上有很多各种各样的番茄时钟,但是我只需要最简单的半小时间隔进行全屏提醒就可以了。但是找来找去,只有一个 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 一下。

附件tomato-master.zip

标签: Java, 番茄时钟

添加新评论